导入依赖
<!-- 导入fastjson处理json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
fastjson
我们在使用该以来的时候,主要使用JSONObject和JSONArray两大类。很多时候相互转换都让人很头疼,以下是总结了一些博客和个人经验的分享,实际上,fastjson是非常优秀的,要深入理解必须要看源码,而不能仅仅依赖博客(很多重复的,简单的罗列)
fastjson优点
2.1 速度快
fastjson相对其他JSON库的特点是快,从2011年fastjson发布1.1.x版本之后,其性能从未被其他Java实现的JSON库超越。
2.2 使用广泛
fastjson在阿里巴巴大规模使用,在数万台服务器上部署,fastjson在业界被广泛接受。在2012年被开源中国评选为最受欢迎的国产开源软件之一。
2.3 测试完备
fastjson有非常多的testcase,在1.2.11版本中,testcase超过3321个。每次发布都会进行回归测试,保证质量稳定。
2.4 使用简单
fastjson的API十分简洁。
String text = JSON.toJSONString(obj); //序列化
VO vo = JSON.parseObject("{…}", VO.class); //反序列化
2.5 功能完备
支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。
我们项目中使用fastjson,主要分为以下功能
- JsonObject转JavaBean
- JavaBean转JsonObject
- JsonArray转List<Object>
- List<Object> 转JsonArray
- JsonArray获取值(遍历)
- JsonObject与JsonArray互相获取、嵌套
- JsonString 转JsonObject
- JsonString转JsonArray
JsonObject
JsonObject转JavaBean
Face_Info face_info = JSONObject.parseObject(jsonString,Face_Info.class);
JsonArray转JavaBean
List<Face_List> face_list = JSON.parseArray(jsonArray.toJSONString(),Face_List.class);
JsonString 转jsonObject
JSONObject jsonObject = JSON.parseObject(String text)
JsonArray
jsonarray遍历
for (int i = 0; i < jsonArray.sieze ; i++) {
...
}
JsonObject与JsonArray互相获取、嵌套(类似)
JSONArray jsonArray = jsonObject.getJSONObject("result").getJSONArray("face_list");
JsonString 转JsonArray
JSONArray array = JSON.parseArray(String)
JSON
JSONObject和JSONArray都继承了JSON类
JSON中的主要方法,这些方法子类都是直接继承,没有重写的
- parse类方法(解析)
- to类方法(转化)
更多的用法还需要结合需求,自我探索哦~