Springboot使⽤jackson或fastjson时不过滤null值FastJson不过滤null值
1.局部
在属性上加上注解
@JSONField(serialzeFeatures= {SerializerFeature.WriteMapNullValue})
2.全局
实现WebMvcConfigurer
@Configuration
public class MyWebMvcConfigurer implements WebMvcConfigurer {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
//创建fastJson消息转换器
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
MediaType mediaTypeJson = MediaType.valueOf(MediaType.APPLICATION_JSON_UTF8_VALUE);
supportedMediaTypes.add(mediaTypeJson);
converter.setSupportedMediaTypes(supportedMediaTypes);
//创建配置类
FastJsonConfig config = new FastJsonConfig();
//修改配置返回内容的过滤
//WriteNullListAsEmpty  :List字段如果为null,输出为[],⽽⾮null
//WriteNullStringAsEmpty :字符类型字段如果为null,输出为"",⽽⾮null
/fastjson忽略属性
/DisableCircularReferenceDetect :消除对同⼀对象循环引⽤的问题,默认为false(如果不配置有可能会进⼊死循环)
//WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,⽽⾮null
//WriteMapNullValue:是否输出值为null的字段,默认为false
config.setSerializerFeatures(SerializerFeature.DisableCircularReferenceDetect
/*,SerializerFeature.WriteMapNullValue*/);
converter.setFastJsonConfig(config);
//将fastjson添加到视图消息转换器列表内
converters.add(converter);
}
}
SerializerFeature属性
名称含义备注
QuoteFieldNames输出key时是否使⽤双引号,默认为true UseSingleQuotes使⽤单引号⽽不是双引号,默认为false WriteMapNullValue是否输出值为null的字段,默认为false WriteEnumUsingToString Enum输出name()或者original,默认为false UseISO8601DateFormat Date使⽤ISO8601格式输出,默认为false
WriteNullListAsEmpty List字段如果为null,输出为[],⽽⾮null  WriteNullStringAsEmpty 字符类型字段如果为null,输出为”“,⽽⾮null  WriteNullNumberAsZero 数值字段如果为null,输出为0,⽽⾮null  WriteNullBooleanAsFalse Boolean字段如果为null,输出为false,⽽⾮null
SkipTransientField 如果是true,类中的Get⽅法对应的Field是transient,序列化时将会被忽略。默认为true  SortField
按字段名称排序后输出。默认为false
WriteTabAsSpecial 把\t做转义输出,默认为false 不
推荐
PrettyFormat 结果是否格式化,默认为false
WriteClassName
序列化时写⼊类型信息,默认为false。反序列化是需⽤到 DisableCircularReferenceDetect 消除对同⼀对象循环引⽤的问题,默认为false  WriteSlashAsSpecial 对斜杠’/’进⾏转义
BrowserCompatible
将中⽂都会序列化为\uXXXX格式,字节数会多⼀些,但是能兼容IE 6,默认为false
WriteDateUseDateFormat 全局修改⽇期格式,默认为false。JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;JSONString(obj, SerializerFeature.WriteDateUseDateFormat);
DisableCheckSpecialChar ⼀个对象的字符串属性中如果有特殊字符如双引号,将会在转成json时带有反斜杠转移符。如果不需要转义,可以使⽤这个属性。默认为false
NotWriteRootClassName 含义
BeanToArray
将对象转为array输出 WriteNonStringKeyAsString 含义 NotWriteDefaultValue 含义 BrowserSecure 含义 IgnoreNonFieldGetter 含义
WriteEnumUsingName
含义
名称
含义
备注

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。