SpringBoot 中fastJson 返回数据展⽰null 字段(响应值为null 时
字段被过滤)
名称说明
缺省值QuoteFieldNames 输出key时是否使⽤双引号true UseSingleQuotes 使⽤单引号⽽⾮双引号false WriteMapNullValue 是否输⼊值为null的key字段false WriteEnumUsingToString Enum输出name()或original false UseISO8601DateFormat
Date使⽤ISO8601格式输出
false
fastjson将对象转为json字符串给前端的时候, 如果字段的值为null, 则该字段默认被fastJson过滤直接不展⽰. ⽽在实际项⽬中我们往往也是需要展⽰这个字段的 , 解决即增加⼀个fastJson序列化配置 , 设置序列化格式.
package com.fig;
import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fig.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;import org.springframework.boot.autoconfigure.http.HttpMessageConverters;import t.annotation.Bean;import t.annotation.Configuration;import org.springframework.http.MediaType;import java.util.ArrayList;import java.util.List;/**
* @title fastjson 前端响应处理
* @description 需要正常返回null 值的字段 * @author Xingbz
* @createDate 2019-10-15 */
@Configuration
public class FastJsonMvcConfig { @Bean
public HttpMessageConverters fastJsonHttpMessageConverters() { //1.定义⼀个convert 消息转换对象
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); //2.添加fastJson 的序列化配置信息
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat,
SerializerFeature.DisableCircularReferenceDetect, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullListAsEmpty); //3.处理中⽂乱码问题
write的返回值List<MediaType> fastMediaTypes = new ArrayList<>(); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); //4.在convert 中添加配置信息
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); return new HttpMessageConverters(fastJsonHttpMessageConverter); }}
fastJson序列化格式(SerializerFeature属性)配置如下 :
WriteNullListAsEmpty list字段如果为null,则输出[]false
WriteNullStringAsEmpty 字符串字段如果为null,则输出""false WriteNullNumberAsZero 数值字段如果为null,则输出0false WriteNullBooleanAsFalse 布尔字段如果为null,则输出false
false SkipTransientField 对象中的属性是transient修饰的,序列化时将会被忽略true SortField
按字段名称排序后输出
false WriteTabAsSpecial 将\t制表符做转义输出(不推荐使⽤)false PrettyFormat 输出内容是否格式化
false WriteClassName
序列化时写⼊类型信息. 反序列化时会⽤到false DisableCircularReferenceDetect 消除对同⼀对象循环引⽤的问题false WriteSlashAsSpecial 对/斜杠进⾏转义
false BrowserCompatible
将中⽂汉字都转为\uXXXX格式, 字节数会多⼀些,但兼容IE6
false
WriteDateUseDateFormat 全局⽇期格式修改. JSON.DEFFAULT_DATE_FORMAT = “yyyy-MM-dd”;J
false
DisableCheckSpecialChar 字符串value中如果有特殊字符如双引号,将会在转成json时带有反斜杠转移符false NotWriteRootClassName
BeanToArray
将对象转为数组输出false WriteNonStringKeyAsString NotWriteDefaultValue BrowserSecure
IgnoreNonFieldGetter 忽略没有get⽅法的字段false WriteEnumUsingName
名称
说明
缺省值
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论