json工具类库:alibaba/fastjson使用记录
JSON工具类库: alibaba/fastjson 使用记录
一、了解JSON
JSON标准规范中文文档: http://www.json.org/json-zh.html
最佳实践:http://kimmking.github.io/2017/06/06/json-best-practice/ (JSON的高级使用,特别十分有参考价值)
二、项目地址和Wiki:
Git地址: https://github.com/alibaba/fastjson
Wiki:https://github.com/alibaba/fastjson/wiki
FAQ:https://github.com/alibaba/fastjson/wiki/常见问题
三、主要作用和优点
主要有三个常用类:
1、JSON:序列化和反序列化的方法(parse()和toJSONString())都在这个类里
public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。
2、JSONObject:反序列化为对象时需要此类,同时提供对对象的操作方法
3、JSONArray:反序列化为对象数组时需要此类,同时提供对对象的操作方法
JSONObject和JSONArray的区别:可理解JSONObject用于一个对象,JSONArray用于多个对象。
四、参考:
- fastJson:http://www.cnblogs.com/zhenmingliu/archive/2011/12/29/2305775.html (参考)
- 最佳实践:http://kimmking.github.io/2017/06/06/json-best-practice/ (JSON的高级使用,很有参考价值)
- fastjson文档解读——上篇:http://blog.csdn.net/cqhzq2014/article/details/49512939 (主要是对类以及方法的解析,可参考,价值不大,可自行看源码理解)
- fastjson文档解读——下篇:http://blog.csdn.net/cqhzq2014/article/details/50117155 (主要是对类以及方法的解析,可参考,价值不大,可自行看源码理解)
相关内容
json三-------com.alibaba.fastjson
1.需要阿里巴巴的fastjson.jar
下载地址:http://download.csdn.net/download/muyeju/9999520
2.将json字符串转为JSONObject,通过JSONObject.parseObject(json字符串),取值的话通过json对象的getString(),getIntValue()等等获取JSONObject的值
String student = "{'name':'张三','age':30}" ; JSONObject json = JSONObject.parseObject(student) ; System.out.println("----------"+json.toString()); System.out.println("----------"+json.getString("name")); System.out.println("----------"+json.getIntValue("age")); 结果: ----------{"age":30,"name":"张三"} ----------张三 ----------30
3.将json字符串转为JSONArray,通过JSONArray.parseArray(json字符串),取值通过循环读取,读取的每一条数据,对象是一个JSONObject,集合就是JSONArray,然后通过json对象的getString(),getIntValue()等等获取JSONObject的值
String stu = "[{'name':'张三','age':20},{'name':'李四','age':30}]" ; JSONArray jsonArray = JSONArray.parseArray(stu) ; for (Object o : jsonArray) { JSONObject j = JSONObject.parseObject(o.toString()) ; System.out.println("-----------"+j.getString("name")); System.out.println("-----------"+j.getIntValue("age")); } 结果: -----------张三 -----------20 -----------李四 -----------30
4.将对象、集合转为json字符串用JSON.toJSONString() ;
Student s = new Student() ; s.setAge(20); s.setName("张三"); String sutdent = JSON.toJSONString(s) ; System.out.println("-----------"+sutdent); List<Student> students = new ArrayList<Student>() ; students.add(s) ; String j = JSON.toJSONString(students) ; System.out.println("--------------"+j); 结果: -----------{"age":20,"name":"张三"} --------------[{"age":20,"name":"张三"}]
5.总结
fastjson是阿里巴巴公司开发的一个高性能JSON处理器,FastJson采用独创的算法,将parse的速度提升到极致,超过所有json库,所以它的性能很好。