SpringBoot中使用Jackson将null值转化为""或者不返回的配置

Posted King-D

tags:

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

第一种方式:SpringBoot中使用Jackson将null值转化为""

前言:在实际项目中难免会遇到null值的出现,但是我们转json时并不希望出现NULL值,而是将NULL值转化为 “” 这种空的字符串。那么,我们应该如何处理呢?在SpringBoot中,新建一个配置类即可。

@Configuration
public class JacksonConfig {

    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
            @Override
            public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                jsonGenerator.writeString("");
            }
        });
        return objectMapper;
    }
}

如此一来,遇到NULL值的时候,都会转化为""的形式。

第二种方式:

就是在yml文件中配置:

spring:
  jackson:
    default-property-inclusion: non_null

第三种方式:

就是在实体类上使用注解:

@JsonInclude(JsonInclude.Include.NON_NULL)

 

 

以上是关于SpringBoot中使用Jackson将null值转化为""或者不返回的配置的主要内容,如果未能解决你的问题,请参考以下文章

让springboot序列化空值null为"null"而不是空报文体(jackson)

spring-boot处理jackson的null值

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

SrpingMVC/SpringBoot中restful接口序列化json的时候使用Jackson将空字段,空字符串不传递给前端

Jackson 包含 non_null 不能处理来自 kotlin 扩展函数的对象

SpringBoot总结