FastJson 介绍
java 处理 json 的库 : fastjson , jackson , gson
fastjson 是阿里巴巴的开源 JSON 解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到JavaBean。 fastjson 是 json 的序列化和反序列化fastjson 已经被广泛使用在各种场景,包括 cache 存储、RPC 通讯、MQ 讯、网络协议通讯、Android 客户端、Ajax 服务器处理程序等等。
fastjson 相对其他 JSON 库的特点是快,从 2011 年 fastjson 发布 1.1.x 版本之后,其性能从未被其他 Java 实现的 JSON 库超越。
FastJson 的使用:
第一:引入对于的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.20</version> </dependency>
第二:写一个student对象来模拟fastJson的序列化与反序列化
@Data public class Student { private String name; private int age; }
第三:模拟序列化,通过创建一个student对象,用JSONObject.toJSONString(student)实现序列化
public void json() { //序列化将对象转化成字符串 Student student = new Student(); student.setName("小新"); student.setAge(20); System.out.println(student); String jsonString = JSONObject.toJSONString(student); System.out.println(jsonString); }
第四:发序列化 获取获取json字符串后将json字符串放入JSONObject.parseObject(json, Student.class);获得响应的对象。
@org.junit.Test public void json01() { //反序列化将json转化成对象 String json="{\"age\":20,\"name\":\"小新\"}"; Student student = JSONObject.parseObject(json, Student.class); System.out.println(student); }
第五:解析json对象,当我们获取json对象后如果是去反序列化后再去获取对象中的某个值时这时的效率比较低所以我们需要对json进行解析,JSONObject.parseObject(json);可以通过以上代码解析解析,其实他的底层原理就是将获取对象的属性放到map中,当你需要某个属性的时候就可以和使用map一样将属性名当成key去获取。
@org.junit.Test public void json02() { //解析json对象 String json="{\"age\":20,\"name\":\"小新\"}"; JSONObject jsonObject = JSONObject.parseObject(json); System.out.println(jsonObject.getString("name")); System.out.println(jsonObject.getInteger("age")); }