目录
5、JSON.parseObject() 和 JSONObject.parseObject()
1、介绍
- FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
- FastJson已经被广泛使用在各种场景,包括cache存储、RPC通讯、MQ通讯、网络协议通讯、Android客户端、Ajax服务器处理程序等等。
- FastJson的API十分简洁。
//序列化
String text = JSON.toJSONString(obj);
//反序列化
String jsonStr = "{...}";
JaveBean bean = JSON.parseObject(jsonStr, JaveBean.class);
JSONArray jsonArr = JSON.parseArray(jsonStr);
JSONObject jsonObj = JSON.parseObject(jsonStr);
2、Maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.54</version>
</dependency>
3、JSON
com.alibaba.fastjson.JSON 这个类是FastJson API的入口,主要的功能都通过这个类提供。
public class JSONObject extends JSON implements Map<String, Object>...{
private final Map<String, Object> map;
}
3.1、String转JSON
对于字符串的处理,主要是看这个字符串(jsonStr)是JSON对象格式还是JSON数组格式,然后选择对应的方法处理就行。
1、JSON对象字符串 转为 JSON对象
JSONObject jsonObj = JSON.parseObject(jsonStr);
2、JSON数组字符串 转为 JSON数组
JSONArray jsonArr = JSON.parseArray(jsonStr);
3、JSON对象字符串 转为 JavaBean
Model model = JSON.parseObject(jsonStr, Model.class);
3.2、Object转String
包括JSONObject、JSONArray、JavaBean、数组、List、Set、Map都可以通过这种方式转String
String jsonStr = JSON.toJSONString(object);
4、JSONField
这是一个注解,用于配置在JavaBean,可以配置在getter/setter方法或者字段上,也可以直接配置在属性上。
注意:若属性是私有的,必须有set*方法。否则无法反序列化。
5、JSON.parseObject() 和 JSONObject.parseObject()
1、parseObject(String str)的作用
- JSON.parseObject(String str)是将str转化为相应的JSONObject对象
- 其中 str 是 “键值对” 形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了
2、JSON.parseObject(String str)与JSONObject.parseObject(String str)的区别
- JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;
- JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。
- 两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。