Fastjson是一個Java語言編寫的高性能JSON處理器,是阿里巴巴的開源產品。它可以將JSON字元串轉換為Java對象,也可以將Java對象轉換為JSON字元串。在Fastjson中,Map和Java Bean之間的轉換是非常容易的,本文將詳細介紹Fastjson中Map與Java Bean之間的轉換。
一、FastjsonMap轉對象不區分大小寫
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class FastJsonDemo {
public static void main(String[] args) {
String jsonStr = "{ \"name\":\"fastjson\", \"Type\":\"Java library\" }";
JSONObject jsonObj = JSON.parseObject(jsonStr, JSONObject.class);
System.out.println(jsonObj.getString("name"));
System.out.println(jsonObj.getString("Type"));
System.out.println(jsonObj.getString("type")); //輸出null,不區分大小寫
}
}
在fastjson中,如果一個對象的屬性名在JSON中不存在,則fastjson會將其設置為null值。對於屬性名的大小寫,fastjson並不區分,如果JSON中存在屬性「Type」,則無論Java對象中是否有屬性「type」,都能夠正確地轉換。
二、Fastjson對象轉JSON
import com.alibaba.fastjson.JSON;
public class FastJsonDemo {
public static void main(String[] args) {
Person person = new Person();
person.setName("fastjson");
person.setAge(10);
String jsonString = JSON.toJSONString(person);
System.out.println(jsonString);
}
}
class Person {
private String name;
private int age;
// 省略getter和setter
}
Fastjson可以將Java對象轉換為JSON字元串,只需調用JSON.toJSONString()方法即可。Fastjson默認下劃線命名法轉換為駝峰式命名法,即Java對象屬性名為name,JSON字元串中屬性名為「name」。
三、Fastjson轉Map
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class FastJsonDemo {
public static void main(String[] args) {
String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
Map map = JSON.parseObject(jsonStr, HashMap.class);
System.out.println(map.get("name"));
System.out.println(map.get("age"));
}
}
Fastjson可以將JSON字元串轉換為Map對象,只需調用JSON.parseObject()方法,並指定返回Map類型。fastjson將JSON字元串中的屬性名作為Map的key,屬性值作為Map的value存儲。在Map對象中,屬性名的大小寫與JSON中的一致。
四、Fastjson對象轉字元串
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class FastJsonDemo {
public static void main(String[] args) {
JSONObject jsonObj = new JSONObject();
jsonObj.put("name", "fastjson");
jsonObj.put("age", 10);
String jsonString = jsonObj.toJSONString();
System.out.println(jsonString);
}
}
Fastjson可以將JSONObject轉換為JSON字元串,只需調用toJSONString()方法即可。JSONObject可以直接添加屬性和值,但人們更多地使用Map和Java Bean封裝數據。
五、Fastjson字元串轉Map
import com.alibaba.fastjson.JSON;
import java.util.HashMap;
import java.util.Map;
public class FastJsonDemo {
public static void main(String[] args) {
String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
Map map = JSON.parseObject(jsonStr, HashMap.class);
System.out.println(map.get("name"));
System.out.println(map.get("age"));
}
}
Fastjson可以將JSON字元串轉換為Map對象,只需調用JSON.parseObject()方法,並指定返回Map類型。fastjson將JSON字元串中的屬性名作為Map的key,屬性值作為Map的value存儲。在Map對象中,屬性名的大小寫與JSON中的一致。
六、Fastjson轉實體對象
import com.alibaba.fastjson.JSON;
public class FastJsonDemo {
public static void main(String[] args) {
String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
Person person = JSON.parseObject(jsonStr, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
}
}
class Person {
private String name;
private int age;
// 省略getter和setter
}
Fastjson可以將JSON字元串轉換為Java對象,只需調用JSON.parseObject()方法,並指定轉換的Java類型即可。在實體對象中,fastjson將JSON字元串中的屬性名與實體對象中的屬性名進行對應。在進行屬性的轉換時仍然不區分大小寫。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/194071.html
微信掃一掃
支付寶掃一掃