SpringBoot中配置不序列化返回值为null的属性

Posted 渔阳nice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot中配置不序列化返回值为null的属性相关的知识,希望对你有一定的参考价值。

package com.weiresearch.properties;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;

import java.io.IOException;

/**
* 〈返回json空值去掉null和""〉 〈功能详细描述〉
*
* @author gogym
* @version 2017年10月13日
* @see JacksonConfig
* @since
*/
@Configuration
public class JacksonConfig
{
@Bean
@Primary
@ConditionalOnMissingBean(ObjectMapper.class)
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
{
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
// 通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化
// Include.Include.ALWAYS 默认
// Include.NON_DEFAULT 属性为默认值不序列化
// Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化,则返回的json是没有这个字段的。这样对移动端会更省流量
// Include.NON_NULL 属性为NULL 不序列化,就是为null的字段不参加序列化
//objectMapper.setSerializationInclusion(Include.NON_EMPTY);
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
// 字段保留,将null值转为""
/* objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
{
@Override
public void serialize(Object o, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException, JsonProcessingException
{
jsonGenerator.writeString("");
}
});*/
return objectMapper;
}
}





















































以上是关于SpringBoot中配置不序列化返回值为null的属性的主要内容,如果未能解决你的问题,请参考以下文章

springboot 解决实体类值为null或者数组为空,不返回前台

SpringBoot MyBatis yml配置,打印sql语句,Mybatis字段值为空时该字段不返回。

SpringBoot MyBatis yml配置,打印sql语句,Mybatis字段值为空时该字段不返回。

源码分析springboot自定义jackson序列化,默认null值个性化处理返回值

mybatis返回map类型数据空值字段不显示的解决方法

为啥 spring boot 会返回一些值为 null 的 json?