SpringBoot中fastJson返回数据展示null字段(响应值为null时字段被过滤)
fastjson
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
项目地址:https://gitcode.com/gh_mirrors/fastj/fastjson
免费下载资源
·
fastjson将对象转为json字符串给前端的时候, 如果字段的值为null, 则该字段默认被fastJson过滤直接不展示. 而在实际项目中我们往往也是需要展示这个字段的 , 解决即增加一个fastJson序列化配置 , 设置序列化格式.
package com.xbz.mvc.config;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.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.处理中文乱码问题
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属性)配置如下 :
名称 | 说明 | 缺省值 |
---|---|---|
QuoteFieldNames | 输出key时是否使用双引号 | true |
UseSingleQuotes | 使用单引号而非双引号 | false |
WriteMapNullValue | 是否输入值为null的key字段 | false |
WriteEnumUsingToString | Enum输出name()或original | false |
UseISO8601DateFormat | Date使用ISO8601格式输出 | false |
WriteNullListAsEmpty | list字段如果为null,则输出[] | false |
WriteNullStringAsEmpty | 字符串字段如果为null,则输出"" | false |
WriteNullNumberAsZero | 数值字段如果为null,则输出0 | false |
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”;JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat); | false |
DisableCheckSpecialChar | 字符串value中如果有特殊字符如双引号,将会在转成json时带有反斜杠转移符 | false |
NotWriteRootClassName | ||
BeanToArray | 将对象转为数组输出 | false |
WriteNonStringKeyAsString | ||
NotWriteDefaultValue | ||
BrowserSecure | ||
IgnoreNonFieldGetter | 忽略没有get方法的字段 | false |
WriteEnumUsingName |
更多更详细说明可参见此博文 https://blog.csdn.net/u010246789/article/details/52539576
GitHub 加速计划 / fastj / fastjson
25.69 K
6.51 K
下载
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
最近提交(Master分支:3 个月前 )
c942c834 - 1 年前
5bc4709b - 1 年前
更多推荐
已为社区贡献7条内容
所有评论(0)