json工具类库:alibaba/fastjson使用记录

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用于多个对象。

四、参考:

  1. fastJson:http://www.cnblogs.com/zhenmingliu/archive/2011/12/29/2305775.html (参考)
  2. 最佳实践:http://kimmking.github.io/2017/06/06/json-best-practice/ (JSON的高级使用,很有参考价值)
  3. fastjson文档解读——上篇:http://blog.csdn.net/cqhzq2014/article/details/49512939 (主要是对类以及方法的解析,可参考,价值不大,可自行看源码理解)
  4. 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库,所以它的性能很好。

赞(1)

文章来源于网络,原文链接请点击 这里
文章版权归作者所有,如作者不同意请直接联系小编删除。