springboot響應(yīng)json?null值過(guò)濾方式
springboot響應(yīng)json null值過(guò)濾
spring:
jackson:
default-property-inclusion: non_null
只需要在application.yml中配置以上內(nèi)容即可。
springboot處理返回json的null值
在后端數(shù)據(jù)接口項(xiàng)目開(kāi)發(fā)中,經(jīng)常遇到返回的數(shù)據(jù)中有null值,導(dǎo)致前端需要進(jìn)行判斷處理,否則容易出現(xiàn)undefined的情況,如何便捷的將null值轉(zhuǎn)換為空字符串?
以SpringBoot項(xiàng)目為例,SSM同理。
1、新建配置類(lèi)(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();
// 通過(guò)該方法對(duì)mapper對(duì)象進(jìn)行設(shè)置,所有序列化的對(duì)象都將按改規(guī)則進(jìn)行系列化
// Include.Include.ALWAYS 默認(rèn)
// Include.NON_DEFAULT 屬性為默認(rèn)值不序列化
// Include.NON_EMPTY 屬性為 空("") 或者為 NULL 都不序列化,則返回的json是沒(méi)有這個(gè)字段的。這樣對(duì)移動(dòng)端會(huì)更省流量
// Include.NON_NULL 屬性為NULL 不序列化,就是為null的字段不參加序列化
//objectMapper.setSerializationInclusion(Include.NON_EMPTY);
// 字段保留,將null值轉(zhuǎn)為""
objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>()
{
@Override
public void serialize(Object o, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider)
throws IOException, JsonProcessingException
{
jsonGenerator.writeString("");
}
});
return objectMapper;
}
}
2、在啟動(dòng)類(lèi)Application中
記得添加Scan注解,防止無(wú)法掃描到配置類(lèi)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot實(shí)現(xiàn)阿里云短信接口對(duì)接的示例代碼
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)阿里云短信接口對(duì)接的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
利用JAVA反射,讀取數(shù)據(jù)庫(kù)表名,自動(dòng)生成對(duì)應(yīng)實(shí)體類(lèi)的操作
這篇文章主要介紹了利用JAVA反射,讀取數(shù)據(jù)庫(kù)表名,自動(dòng)生成對(duì)應(yīng)實(shí)體類(lèi)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08
Spring?@Configuration?proxyBeanMethods=false問(wèn)題
這篇文章主要介紹了Spring?@Configuration?proxyBeanMethods=false問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
java中的常見(jiàn)幾種發(fā)送http請(qǐng)求實(shí)例
在Java編程中,發(fā)送HTTP請(qǐng)求是一個(gè)常見(jiàn)需求,常用的方法有四種:HttpURLConnection、URLConnection、HttpClient以及Socket,其中,使用HttpClient方式時(shí),需要添加額外的庫(kù)支持2024-11-11
Java設(shè)計(jì)模式之創(chuàng)建者模式詳解
這篇文章主要介紹了Java設(shè)計(jì)模式之創(chuàng)建者模式詳解,創(chuàng)建者模式,顧名思義,就是提供友好的創(chuàng)建對(duì)象的方式?,對(duì)象都是?new?出來(lái)的,但是在一些情況下,這種方式不是很友好,首先,它不夠直觀,需要的朋友可以參考下2023-08-08
Springboot整合EasyExcel實(shí)現(xiàn)Excel文件上傳方式
這篇文章主要介紹了Springboot整合EasyExcel實(shí)現(xiàn)Excel文件上傳方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
spring?boot集成WebSocket日志實(shí)時(shí)輸出到web頁(yè)面
這篇文章主要為大家介紹了spring?boot集成WebSocket日志實(shí)時(shí)輸出到web頁(yè)面展示的詳細(xì)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03

