json返回爲null處理方法 三種方法+

一、配置文件裏面 加上就不顯示了。

spring.jackson.default-property-inclusion=non_null 

 

二、加一個bean

@Configuration
public class JacksonConfig {

    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        //通過該方法對mapper對象進行設置,所有序列化的對象都將按改規則進行系列化,屬性爲NULL 不序列化
        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
        return objectMapper;
    }
//Include.Include.ALWAYS 默認
//Include.NON_DEFAULT    屬性爲默認值不序列化
//nclude.NON_EMPTY       屬性爲 空("") 或者爲 NULL 都不序列化
// Include.NON_NULL       屬性爲NULL 不序列化

}

三、返回集,類的上面加這個

@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
public class Result {

四、如果是fastjson 返回


        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.35</version>
        </dependency>
package com.tx.config;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;

@Configuration
public class fastJsonConfig extends WebMvcConfigurationSupport {

    /**
     * 使用阿里 fastjson 作爲 JSON MessageConverter
     * @param converters
     */
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        FastJsonConfig config = new FastJsonConfig();
        config.setSerializerFeatures(
                // 保留 Map 空的字段
                SerializerFeature.WriteMapNullValue,
                // 將 String 類型的 null 轉成""
                SerializerFeature.WriteNullStringAsEmpty,
                // 將 Number 類型的 null 轉成 0
                SerializerFeature.WriteNullNumberAsZero,
                // 將 List 類型的 null 轉成 []
                SerializerFeature.WriteNullListAsEmpty,
                // 將 Boolean 類型的 null 轉成 false
                SerializerFeature.WriteNullBooleanAsFalse,
                // 避免循環引用
                SerializerFeature.DisableCircularReferenceDetect);

        converter.setFastJsonConfig(config);
        converter.setDefaultCharset(Charset.forName("UTF-8"));
        List<MediaType> mediaTypeList = new ArrayList<>();
        // 解決中文亂碼問題,相當於在 Controller 上的 @RequestMapping 中加了個屬性 produces = "application/json"
        mediaTypeList.add(MediaType.APPLICATION_JSON);
        converter.setSupportedMediaTypes(mediaTypeList);
        converters.add(converter);
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章