在開發過程中,我們需要統一返回前端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