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 }"; Mapmap = 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 }"; Mapmap = 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字符串中的属性名与实体对象中的属性名进行对应。在进行属性的转换时仍然不区分大小写。