null字段输出为空串
@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, JsonProcessingException {
jsonGenerator.writeString("");
}
});
return objectMapper;
}
json转换配置
@Bean
public Jackson2ObjectMapperBuilderCustomizer customJackson() {
return new Jackson2ObjectMapperBuilderCustomizer() {
@Override
public void customize(Jackson2ObjectMapperBuilder jacksonObjectMapperBuilder) { jacksonObjectMapperBuilder.serializationInclusion(JsonInclude.Include.NON_NULL); jacksonObjectMapperBuilder.failOnUnknownProperties(false); jacksonObjectMapperBuilder.propertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); jacksonObjectMapperBuilder.configure(jacksonObjectMapper(jacksonObjectMapperBuilder));
}
};
}
- @JsonInclude(Include.NON_NULL)
将该标记放在属性上,如果该属性为NULL则不参与序列化 ,如果放在类上边,那对这个类的全部属性起作用
- Include.Include.ALWAYS 默认
- Include.NON_DEFAULT 属性为默认值不序列化
- Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化
- Include.NON_NULL 属性为NULL 不序列化