fastjson2 JSONWriter.Feature介绍
JSONWriter.Feature介绍
FieldBased 基于字段反序列化,如果不配置,会默认基于public的field和getter方法序列化。配置后,会基于非static的field(包括private)做反序列化。
IgnoreNoneSerializable 序列化忽略非Serializable类型的字段
BeanToArray 将对象序列为[101,“XX”]这样的数组格式,这样的格式会更小
WriteNulls 序列化输出空值字段
BrowserCompatible 在大范围超过JavaScript支持的整数,输出为字符串格式
NullAsDefaultValue 将空置输出为缺省值,Number类型的null都输出为0,String类型的null输出为"",数组和Collection类型的输出为[]
WriteBooleanAsNumber 将true输出为1,false输出为0
WriteNonStringValueAsString 将非String类型的值输出为String,不包括对象和数据类型
WriteClassName 序列化时输出类型信息
NotWriteRootClassName 打开WriteClassName的同时,不输出根对象的类型信息
NotWriteHashMapArrayListClassName 打开WriteClassName的同时,不输出类型为HashMap/ArrayList类型对象的类型信息,反序列结合UseNativeObject使用,能节省序列化结果的大小
NotWriteDefaultValue 当字段的值为缺省值时,不输出,这个能节省序列化后结果的大小
WriteEnumsUsingName 序列化enum使用name
WriteEnumUsingToString 序列化enum使用toString方法
IgnoreErrorGetter 忽略setter方法的错误
PrettyFormat 格式化输出
ReferenceDetection 打开引用检测,这个缺省是关闭的,和fastjson 1.x不一致
WriteNameAsSymbol 将字段名按照symbol输出,这个仅在JSONB下起作用
WriteBigDecimalAsPlain 序列化BigDecimal使用toPlainString,避免科学计数法
UseSingleQuotes 使用单引号
MapSortField 对Map中的KeyValue按照Key做排序后再输出。在有些验签的场景需要使用这个Feature
WriteNullListAsEmpty 将List类型字段的空值序列化输出为空数组"[]"
WriteNullStringAsEmpty 将String类型字段的空值序列化输出为空字符串""
WriteNullNumberAsZero 将Number类型字段的空值序列化输出为0
WriteNullBooleanAsFalse 将Boolean类型字段的空值序列化输出为false
NotWriteEmptyArray 数组类型字段当length为0时不输出
WriteNonStringKeyAsString 将Map中的非String类型的Key当做String类型输出
ErrorOnNoneSerializable 序列化非Serializable对象时报错
WritePairAsJavaBean 将 Apache Common 包中的Pair对象当做JavaBean序列化
BrowserSecure 浏览器安全,将会’<’ ‘>’ ‘(’ ')'字符做转义输出
WriteLongAsString 将Long序列化为String
WriteEnumUsingOrdinal 序列化Enum使用Ordinal,缺省是name
WriteThrowableClassName 序列化Throwable时带上类型信息
LargeObject 这个是一个保护措施,是为了防止序列化有循环引用对象消耗过大资源的保护措施。
UnquoteFieldName 不带引号输出Key
NotWriteSetClassName 当打开WriteClassName时又不想输出Set的类型信息,使用这个Feature
NotWriteNumberClassName 当打开WriteClassName时又不想输出Number的类型信息,比如L/S/B/F/D这种后缀,使用这个Feature
————————————————
版权声明:本文为CSDN博主「dian张」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013086392/article/details/131478710
Fastjson提供了丰富的配置选项来处理大型对象的序列化。
在fastjson 2.x中,你可以使用SerializerFeature类中的WriteDateUseDateFormat选项来全局配置日期格式。
此外,Fastjson还提供了JSONWriter.Feature和JSONReader.Feature,这两个特性分别用于配置序列化和反序列化的行为。
如果你需要定制化的序列化输出,Fastjson也支持使用@JSONType、@JSONField和SerializeFilter等注解。
你可以根据自己的需求,通过这些配置选项来优化大型对象的序列化过程。