阿里巴巴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);
}
}
}