Java基础类(十五):FastJson

x33g5p2x  于2022-03-22 转载在 Java  
字(2.0k)|赞(0)|评价(0)|浏览(187)

1、介绍

2、Maven依赖

3、JSON

3.1、String转JSON

1、JSON对象字符串 转为 JSON对象

2、JSON数组字符串 转为 JSON数组

3、JSON对象字符串 转为 JavaBean

3.2、Object转String

4、JSONField

5、JSON.parseObject() 和 JSONObject.parseObject()

6、JSONPath

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),两者调的是同一个方法。

6、JSONPath

参考:​Alibaba FastJson 常用方法使用指南 - 一线大码 - 博客园

相关文章