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/fastjsonFastjson API入口類是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON類上的靜態方法直接完成。
// 把JSON文字parse為JSONObject或者JSONArray
public static final Object parse(String text);
// 把JSON文字parse成JSONObject
* public static final JSONObject parseObject(String text);
// 把JSON文字parse為JavaBean
*public static final T parseObject(String text, Class clazz);
// 把JSON文字parse成JSONArray
*public static final JSONArray parseArray(String text);
//把JSON文字parse成JavaBean集合
*public static final List parseArray(String text, Class clazz);
// 將JavaBean序列化為JSON文字
*public static final String toJSONString(Object object);
public class Person { private Integer id; private String name; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Person() { super(); // TODO Auto-generated constructor stub } public Person(Integer id, String name) { super(); this.id = id; this.name = name; } @Override public String toString() { return "Person [id=" + id + ", name=" + name + "]"; } }
<--------- 測試 ----------->
/**
* 測試fastjson
* @author liyang
* 2017年5月6日
*/
public class TestFastJson {
public static void main(String[] args) {
// 1. 將集合或者物件轉換成json字串
Person p1 = new Person(1, "zhangsan");
Person p2 = new Person(2, "lisi");
System.out.println("物件轉換成json字串 :" + JSON.toJSON(p1));
List<Person> list = new ArrayList<Person>();
list.add(p1);
list.add(p2);
System.out.println("集合轉換成json字串 : " + JSON.toJSONString(list));
//2. Json串反序列化成物件
Person p3 = JSON.parseObject("{\"id\":4,\"name\":\"liyang\"}", Person.class);
System.out.println("Json串反序列化成物件 : id: " + p3.getId() + " name :" + p3.getName());
// Json串反序列化成陣列
List<Person> persons = JSON.parseArray("[{\"id\":5,\"name\":\"qiaodan\"},{\"id\":6,\"name\":\"kebi\"}]", Person.class);
for (Person person : persons) {
System.out.println("Json串反序列化成陣列: " + person);
}
}
}