springboot json返回null問題處理

在開發過程當中,咱們須要統一返回前端json格式的數據,但有些接口的返回值存在 null或者""這種沒有意義的字段。以上不只影響理解,還浪費帶寬,這時咱們能夠統一作一下處理:不返回空字段,或者把NULL轉成「」。前端

要作要以上,通過網上尋找資料,發現不少文章都是相互拷貝,因而從網上本身尋找資料,對他們進行整理,記錄,同時能夠對返回的null字段進行靈活配置。spring

spring 內置的json處理框架是Jackson。咱們能夠對它配置一下達到目的,具體代碼以下.json

@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);
 
        // 字段保留,將null值轉爲""
        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
    {
        @Override
        public void serialize(Object o, JsonGenerator jsonGenerator,
                              SerializerProvider serializerProvider)
                throws IOException, JsonProcessingException
        {
            jsonGenerator.writeString("");
        }
    });
        return objectMapper;
    }
}參考文章:https://blog.csdn.net/kokjuis/article/details/78830314
相關文章
相關標籤/搜索