一、什么是fastjson
fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。
二、fastjson优势
速度快:相对其他JSON库的特点是快
使用简单: api简单
功能完善:支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展
三、fastjson使用
FastJson三个核心类
- JSON:fastjson的解析器,用于json字符串和javaBean、Json对象的转换
- JSONObject:fastJson提供的json对象
- JSONArray:fastJson提供json数组对象
常用api
// 把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> T parseObject(String text, Class<T> clazz);
// 把JSON文本parse成JSONArray
public static final JSONArray parseArray(String text);
//把JSON文本parse成JavaBean集合
public static final <T> List<T> parseArray(String text, Class<T> clazz);
// 将JavaBean序列化为JSON文本
public static final String toJSONString(Object object);
// 将JavaBean根据字段特征序列化
public static final String toJSONString(Object object,SerializerFeature... features);
//将JavaBean转换为JSONObject或者JSONArray。
public static final Object toJSON(Object javaObject);
四、fastjson高阶使用
1、序列化特征数组
SerializerFeature[] features = {
SerializerFeature.WriteMapNullValue, // 输出空置字段
SerializerFeature.WriteNullListAsEmpty, // list字段如果为null,输出为[],而不是null
SerializerFeature.WriteNullNumberAsZero, // 数值字段如果为null,输出为0,而不是null
SerializerFeature.WriteNullBooleanAsFalse, // Boolean字段如果为null,输出为false,而不是null
SerializerFeature.WriteNullStringAsEmpty, // 字符类型字段如果为null,输出为"",而不是null
};
JSON.toJSONString(object, features);
2、按写入序进行反序列化
Map<String, Object> map = JSON.parseObject(expressionJson, LinkedHashMap.class, Feature.OrderedField);
网友评论