一.fastjson序列化与反序列化方式
1.fastjson依赖版本:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
2.json字符串转换java对象:
a)TypeReference方式转换java对象
MessageDTO<JSONObject> messageDTO = JSONObject.parseObject(json,new TypeReference<MessageDTO<JSONObject>>(){});
注意:
i.转换后的JSONObject中的属性顺序是乱序的。
ii.这个方式比较安全,转换Map时其他方法在某些特殊情况,会报转换报错。
b)转换java对象
JSONObject.toJavaObject(json,Java对象.class)
c)转换成JSONObject对象
JSONObject.parseObject(json)
d)class转换成Java对象
JSONObject.parseObject(json,Java对象.class)
3.java对象转换json字符串
通过属性过滤器(SerializeFilter)排除属性与包含属性,来控制转换成JSON字符串属性输出:
String[] excludeProperties = {"属性名1", "属性名2"};
String[] includeProperties = {"属性名1", "属性名1"};
PropertyPreFilters filters = new PropertyPreFilters();
PropertyPreFilters.MySimplePropertyPreFilter excludefilter = filters.addFilter();
excludefilter.addExcludes(excludeProperties);
PropertyPreFilters.MySimplePropertyPreFilter includefilter = filters.addFilter();
includefilter.addIncludes(includeProperties);
a)转json字符串默认忽略值为null的属性:
json = JSONObject.toJSONString(obj);
或
json = JSONObject.toJSONString(obj, SerializerFeature.PrettyFormat);
b)包含值为null的属性:
json = JSONObject.toJSONStrin