Memory River

记忆河,记今日之事忆往昔之流

SpringBoot项目Json中的空值处理

Rickey  \  2019-07-04 09:23:10

博客前端使用的是thymeleaf模板引擎,这个模板引擎有时候很操蛋,比如下面代码:

<input type="hidden" id="mainImagePath" name="mainImagePath" th:value="${article?.imgsrcPath}">

如果article对象中,不存在imgsrcPath节点的时候,就会给我报错,抛异常。我下面模拟一下异常,随便写一个节点叫caodan,

百度无解。

只能走歪道,因为是由于字段的值为null,在返回的时候自动给去掉了null值的返回值了,导致前端获取不到。

方法:将null值的字符串的值改为"",即空串。使用的java类如下:springboot前提下。

package com.wchuf.basics.config;

import java.util.List;

import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;

/**
 * 返回结果,null按类型转换为对应的默认值
 */
@Configuration
public class JacksonConfig extends WebMvcConfigurerAdapter{
	@Override
	public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
		FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
		FastJsonConfig fastJsonConfig = new FastJsonConfig();
		fastJsonConfig.setSerializerFeatures(
				//List字段如果为null,输出为[],而非null
				SerializerFeature.WriteNullListAsEmpty,
				//是否输出值为null的字段,默认为false
				SerializerFeature.WriteMapNullValue,
				//字符串null返回空字符串
				SerializerFeature.WriteNullStringAsEmpty,
				//空布尔值返回false
				SerializerFeature.WriteNullBooleanAsFalse,
				//结果是否格式化,默认为false
				SerializerFeature.PrettyFormat);
		//格式化日期
		fastJsonConfig.setDateFormat("YYYY-MM-dd HH:mm:ss");
		converter.setFastJsonConfig(fastJsonConfig);
		converters.add(converter);
	}
}


标签: Json返回null值
地址: http://wchuf.com/article/adt/c6aa7d10e87d416b87d7756c4a71f8a6.html
声明: 本文为原创文章,版权归本站所有,欢迎分享本文,转载请保留出处!
  151         0         0
Rickey
人,可以无傲气,但不可以无傲骨。

YOU MIGHT ALSO LIKE

0 COMMENTS
想对博主说些什么?