1. 程式人生 > >Json解析包 阿里巴巴 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/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);
		}
	}
}