Fastjson使用

来源:互联网 发布:现货黄金模拟软件 编辑:程序博客网 时间:2024/05/28 05:14

FastJSon是阿里开发的一款用来解析接送文件的开源框架,其特点是快和小,就是处理速度快和占用内存小,它的使用方法和其他JSon解析框架类似。

FastJson下载地址:Fastjson下载地址。


一、JSON规范
JSON是一个标准规范,用于数据交互,规范的中文文档如下:
http://www.json.org/json-zh.html

二、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;
}


}


五、说明

一些跟高级的特性没有在此次测试中,以后使用到再做具体说明。


0 0