1.支持JDK各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。
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。个人做的一个项目中就用到了parseArray解析,很方便快捷,不像普通json还要遍历数组一个个去setXXX对象bean类。查看parseArray函数源码如下
核心类就是JSONLexer . 有两个子类
这个类就是一个扫描器性质的类,里面维护了一个text的json字符串对象,然后这个类就在里面逐个扫描,取出对应的键值对,放入对象中。
3.有关类库的一些说明
SerializeWriter:相当于StringBuffer
JSONArray:相当于List<Object>
JSONObject:相当于Map<String,Object>
4.SerializeConfig SerializeConfig的主要功能是配置并记录每种Java类型对应的序列化类(ObjectSerializer接口的实现类)