Spring boot FastJson 返回JSON数据删除了NULL空字段解决办法

教程分享 > WEB技术 > JavaScript > 博文分享 (8130) 2024-08-07 11:21:12

在国内项目中,阿里的fastjson包因其使用简单功能强大很多人喜欢在项目中使用,我也是其中一员。今天主要讨论的是在某些情况下因fastjson的默认配置删除了空的字段,这对于小项目的前端处理就有些恼火了,每次要验证所有的字段非空,为了简单还是将null值转换为空串比较方便。

下面就spring boot项目中存在该问题进行解决。

首先在web配置中找到fastjson的响应配置,如下:

	@Bean
	public HttpMessageConverters fastJsonHttpMessageConverters() {
		FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(
				SerializerFeature.PrettyFormat,
				SerializerFeature.WriteNullStringAsEmpty,
				SerializerFeature.WriteNullListAsEmpty,
				SerializerFeature.WriteNullNumberAsZero);
		fastConverter.setFastJsonConfig(fastJsonConfig);
		HttpMessageConverter<?> converter = fastConverter;
		return new HttpMessageConverters(converter);
	}


上面的配置中以下代码片段为配置fastjson不删除null的String字段,并将null字段返回空串:
 

		fastJsonConfig.setSerializerFeatures(
				SerializerFeature.PrettyFormat,
				SerializerFeature.WriteNullStringAsEmpty,
				SerializerFeature.WriteNullListAsEmpty,
				SerializerFeature.WriteNullNumberAsZero);

相关文章
在国内项目中,阿里的fastjson包因其使用简单功能强大很多人喜欢在项目中使用,我也是其中一员
fastJSON字符串类型数据中的日期转换为Java bean的日期对象
简介Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求
JavaScript正则加上/去掉cdn域名前缀,文本支持&lt;script&gtl;let $domain="https://static-project.example
在js编程中,也会遇到替换字符串对象中某个字符。这时候就需要使用js内置函数replace了。可以替换一个也可以替换多个,支持正则表达式匹配比较灵活
jsp中/el表达式中将后台传来的时间戳格式化为年月日时分秒
httpclient4.5使用详解 httpclient 4.5 post传递json参数
引言AES代表高级加密系统,它是一种对称加密算法
Java EE 8 JSON Pointer讲解,Java EE 8包含JSON处理API的更新,并为最新的JSON标准提供最新的IEFT标准。
1.引入相关el表达式标签库&lt;%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%&gtl;&lt;%@
Angular HttpClient使用RxJS Observable例子,习使用Angular2  HttpClient服务从在线REST API获取数据并将其作为Observable对象/数...
java json字符串转对象_json转换为java对象_ json字符串转对象数组
Spring Boot 2.0 @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") 注解格式化日期失效原因及解决。
说明:json除了键值对的形式以外,还包括Array数列形式,这在mysql5.7及以上也是支持的,对Array中元素的操作相当于直接对键值对中的值操作,少了“键”的定位这一步,这里不单独展示,...