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