Fastjson使用

FastJSon是阿里開發的一款用來解析接送文件的開源框架,其特點是快和小,就是處理速度快和佔用內存小,它的使用方法和其他JSon解析框架類似。

FastJson下載地址:Fastjson下載地址


一、JSON規範
JSON是一個標準規範,用於數據交互,規範的中文文檔如下:

二、FastJSon使用介紹
Fastjson的主要入口是JSON類,它是一個抽象類,具體使用的是它的兩個子類:JSONObject和JSONArray

JSON常用API:
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。


三、有關類庫的一些說明
 
SerializeWriter:相當於StringBuffer
JSONArray:相當於List<Object>
JSONObject:相當於Map<String, Object>
 
JSON反序列化沒有真正數組,本質類型都是List<Object>

四、測試

package com.fastjson.learn;


import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;


public class FastJson01 {


public static void main(String[] args) {


JSONObject object = (JSONObject) JSON.parse("{\"name\":\"張三\"}");
System.out.println(object.getString("name"));


JSONArray jsonArr = (JSONArray) JSON
.parse("[{\"name\":\"張三\"},{\"name\":\"李四\"}]");


JSONObject tmpObj = jsonArr.getJSONObject(1);
System.out.println(tmpObj.getString("name"));


List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");


System.out.println(object.toJSONString(list));


Map<String, String> map = new HashMap<String, String>();
map.put("1", "一");
map.put("2", "二");
map.put("3", "三");


System.out.println(object.toJSONString(map));


List<Map> tmpMap = jsonArr.parseObject(
"[{\"name\":\"張三\"},{\"name\":\"李四\"}]", List.class);


System.out.println(tmpMap.get(1).get("name"));

Person person = new Person();
person.setHigh(180);

person.setName("王二小");
person.setSex("男");

String json1 = object.toJSONString(person);
System.out.println(json1);

Person person1 = (Person) object.parseObject(json1, Person.class);
System.out.println(person1.getHigh());
}
}


class Person {


String name;
String sex;
int high;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getHigh() {
return high;
}
public void setHigh(int high) {
this.high = high;
}


}


五、說明

一些跟高級的特性沒有在此次測試中,以後使用到再做具體說明。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章