springboot json返回null問題處理


在開發過程中,我們需要統一返回前端json格式的數據,但有些接口的返回值存在 null或者""這種沒有意義的字段。以上不僅影響理解,還浪費帶寬,這時我們可以統一做一下處理:不返回空字段,或者把NULL轉成“”。

要做要以上,經過網上尋找資料,發現很多文章都是相互拷貝,於是從網上自己尋找資料,對他們進行整理,記錄,同時可以對返回的null字段進行靈活配置。

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

@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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM