springboot響應json null值過濾方式

springboot響應json null值過濾

spring:
  jackson:
    default-property-inclusion: non_null

隻需要在application.yml中配置以上內容即可。

springboot處理返回json的null值

在後端數據接口項目開發中,經常遇到返回的數據中有null值,導致前端需要進行判斷處理,否則容易出現undefined的情況,如何便捷的將null值轉換為空字符串?

以SpringBoot項目為例,SSM同理。

1、新建配置類(JsonConfig.java)

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import java.io.IOException;
@Configuration
public class JsonConfig {
    @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;
    }
}

2、在啟動類Application中

記得添加Scan註解,防止無法掃描到配置類。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: