一、配置文件裏面 加上就不顯示了。
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);
}
}