JSON

Java的Json解析包FastJson使用

字号+ 作者:H5之家 来源:H5之家 2017-06-06 12:01 我要评论( )

Java的Json解析包FastJson使用,阿里巴巴FastJson是一个Json处理工具包,包括序列化和反序列化两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的

正文

阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;
功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

源码地址:https://github.com/alibaba/fastjson


Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。

publicstaticfinalObject parse(String text);// 把JSON文本parse为JSONObject或者JSONArray
*publicstaticfinalJSONObject parseObject(String text);// 把JSON文本parse成JSONObject
*publicstaticfinalT parseObject(String text, Class clazz);// 把JSON文本parse为JavaBean
*publicstaticfinalJSONArray parseArray(String text);// 把JSON文本parse成JSONArray
*publicstaticfinalList parseArray(String text, Class clazz);//把JSON文本parse成JavaBean集合
*publicstaticfinalString toJSONString(Object object);// 将JavaBean序列化为JSON文本
publicstaticfinalString toJSONString(Object object,booleanprettyFormat);// 将JavaBean序列化为带格式的JSON文本
publicstaticfinalObject toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。 以上加*的是一些项目中的常用方法。 以下是自己练习写的代码: package com.test; public class TestPerson { private int age; private String name; public TestPerson(){ } public TestPerson(int age,String name){ this.age=age; this.name=name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package com.test; import java.util.*; import com.alibaba.fastjson.*; public final class TestFastJson { public static void main(String[] args) { // TODO Auto-generated method stub TestPerson json = new TestPerson(19,"李明"); List<TestPerson> list = new ArrayList<TestPerson>(); list.add(json); list.add(new TestPerson(12,"张三")); //将集合或者对象序例化成JSON System.out.println(JSON.toJSON(json)); System.out.println( JSON.toJSON(list) ); //Json串反序列化成对象 TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}", TestPerson.class); System.out.printf("name:%s,age:%d\n",person.getName(),person.getAge()); String str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"; //数组对象反序列化成集合 List<TestPerson> listPerson = JSON.parseArray(str,TestPerson.class); for(TestPerson item : listPerson){ System.out.println( item.getName() ); System.out.println( item.getAge()); } //没有对象直接解析JSON对象 JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}"); System.out.printf("name:%s,age:%d\n",jobj.getString("name"),jobj.getBigInteger("age")); //没有对象直接解析JSON数组 JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]"); for(int i=0,len=jarr.size();i<len;i++){ JSONObject temp= jarr.getJSONObject(i); System.out.printf("name:%s,age:%d\n",temp.getString("name"),temp.getBigInteger("age")); } for(Object obj:jarr){ System.out.println(obj.toString()); } } }

  

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JSON转换方法小结

    JSON转换方法小结

    2017-06-06 12:00

  • 如何解析域名 如何解析json数据

    如何解析域名 如何解析json数据

    2017-06-06 11:01

  • 使用JSON的Android身份验证

    使用JSON的Android身份验证

    2017-06-06 09:32

  • 转载--PHP json_encode() 和json_decode()函数介绍

    转载--PHP json_encode() 和json_decode()函数介绍

    2017-06-04 14:00

网友点评
l