? ? ?FastJson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。FastJson采用独创的算法,将parse的速度提升到极致,据说超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf.
?
maven引入
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.37</version> </dependency>
?
? ? ? FastJson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在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。
?
?
?
Json中使用单引号(默认转成json的是双引号)
Object o = ...; String text = JSON.toJSONString(o, SerializerFeature.UseSingleQuotes);
?
?
FastJson中提供了一些有用的注解,可以更好的为我们服务,比如@JSONField
?
改变json中实体属性名称
@JSONField(name = "sms_info") private String smsInfo;
?
日期格式化
@JSONField (format="yyyy-MM-dd HH:mm")
?
属性不进行json转换?
@JSONField(serialize=false)
?
注解也可以用在方法上(对于转换枚举等这种需要特殊处理的非常有用)
@JSONField(name="typeCode") public String getTypeCode() { if(type!=null){ return type.getCode(); } return null; }
?
?