Fastjson是一个Java语言编写的高性能JSON处理器,是阿里巴巴的开源产品。它可以将JSON字符串转换为Java对象,也可以将Java对象转换为JSON字符串。在Fastjson中,Map和Java Bean之间的转换是非常容易的,本文将详细介绍Fastjson中Map与Java Bean之间的转换。
一、Fastjson Map转对象不区分大小写
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<String, Object> 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<String, Object> 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字符串中的属性名与实体对象中的属性名进行对应。在进行属性的转换时仍然不区分大小写。