FastJson序列化定制

SDK依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>${latest}</version>
</dependency>

SerializerFeature属性

JSON.toJSONString(object, SerializerFeature.. features);
枚举值 默认 说明 备注
QuoteFieldNames Y 输出key时是否使用双引号
UseSingleQuotes N 使用单引号而不是双引号
WriteMapNullValue N 是否输出值为null的字段
WriteEnumUsingToString N Enum输出toString()值
WriteEnumUsingName Y Enum输出name值
UseISO8601DateFormat N Date使用ISO8601格式输出
WriteNullListAsEmpty N List字段如果为null,输出为[],而非null
WriteNullStringAsEmpty N 字段如果为null,输出为"",而非null
WriteNullNumberAsZero N 数值字段如果为null,输出为0,而非null
WriteNullBooleanAsFalse N Boolean字段如果为null,输出为false,而非null
SkipTransientField Y 类中的Get方法对应的Field是transient,序列化时将会被忽略
SortField Y 按字段名称排序后输出
PrettyFormat N 是否格式化输出
WriteClassName N 序列化时写入类型信息,反序列化是会用到
DisableCircularReferenceDetect N 消除对同一对象循环引用的问题
WriteSlashAsSpecial N 对斜杠’/’进行转义
BrowserCompatible N 将中文都会序列化为\uXXXX格式,字节数会多一些,但是能兼容IE 6
WriteDateUseDateFormat N 全局修改日期格式 见示例01
NotWriteRootClassName Y
DisableCheckSpecialChar N 不需要将字符串中的特殊字符(如双引号)转成带有反斜杠转义符
BeanToArray N 将对象的属性字段转为数组输出 见示例02
WriteNonStringKeyAsString Y 将字段类型为非String的转换为String
NotWriteDefaultValue N
BrowserSecure
IgnoreNonFieldGetter Y
WriteNonStringValueAsString N
IgnoreErrorGetter
WriteBigDecimalAsPlain Y 将BigDecimal转成普通数字

示例

01、WriteDateUseDateFormat

JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;
JSON.toJSONString(object, SerializerFeature.WriteDateUseDateFormat);

02、BeanToArray

[123,null,"john",null]

猜你喜欢

转载自my.oschina.net/u/812874/blog/1612110