阿⾥的Json解析包FastJson使⽤
阿⾥巴巴FastJson是⼀个Json处理⼯具包,包括“序列化”和“反序列化”两部分,它具备如下特征:
速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括⾃称最快的JackJson;
功能强⼤,完全⽀持Java Bean、集合、Map、⽇期、Enum,⽀持范型,⽀持⾃省;⽆依赖,能够直接运⾏在Java SE 5.0以上版本;⽀持Android;开源 (Apache 2.0)源码地址:github/alibaba/fastjson
Fastjson API⼊⼝类是com.alibaba.fastjson.JSON,常⽤的序列化操作都可以在JSON类上的静态⽅法直接完成。
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 parseObject(String text, Class clazz); // 把JSON⽂本parse为JavaBean
public static final JSONArray parseArray(String text); // 把JSON⽂本parse成JSONArray
public static final List parseArray(String text, Class 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。
package com.alibaba.fastjson0106;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.List;
/**
fastjson怎么用* @Author: hoobey
* @Description:
* @Date: Created in 15:07 2018/1/6
* @Modified By:
*/
public class TestFastJson {
public static void main(String[] args) {
TestPerson json = new TestPerson(19, "李明");
List<TestPerson> list = new ArrayList<TestPerson>();
list.add(json);
list.add(new TestPerson(12, "张三"));
/
/将集合或者对象序例化成JSON
// System.out.JSON(json));//{"name":"李明","age":19}
// System.out.println( JSON(list) );//[{"name":"李明","age":19},{"name":"张三","age":12}]
//Json串反序列化成对象
TestPerson person = JSON.parseObject("{\"name\":\"李明\",\"age\":19}", TestPerson.class);
// System.out.printf("name:%s,age:%d\n",Name(),Age());//name:李明,age:19
String str = "[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]";
//数组对象反序列化成集合
List<TestPerson> listPerson = JSON.parseArray(str, TestPerson.class);
for (TestPerson item : listPerson) {
// System.out.println( Name() );//李明张三
/
/ System.out.println( Age()); //19 12
}
//没有对象直接解析JSON对象
JSONObject jobj = JSON.parseObject("{\"name\":\"李明\",\"age\":19}");
// System.out.printf("name:%s,age:%d\n",String("name"),BigInteger("age"));
//name:李明,age:19
//没有对象直接解析JSON数组
JSONArray jarr = JSON.parseArray("[{'name':'李明','age':18},{'name':'⼩四','age':21}]");
//和下⾯使⽤转义字符效果是⼀致的
/* JSONArray jarr = JSON.parseArray("[{\"name\":\"李明\",\"age\":19},{\"name\":\"张三\",\"age\":12}]");*/
System.out.println(jarr);//[{"name":"李明","age":18},{"name":"⼩四","age":21}]
for (int i = 0, len = jarr.size(); i < len; i++) {
JSONObject temp = JSONObject(i);
System.out.String("name")+","+BigInteger("age"));
/* System.out.printf("name:%s,age:%d\n", String("name"), BigInteger("age"));*/
//name:李明,age:19 name:张三,age:12
}
/*{"name":"李明","age":19}
{"name":"张三","age":12}*/
for (Object obj : jarr) {
System.out.String());
}
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论