springboot返回值轉(zhuǎn)成JSONString的處理方式
返回值轉(zhuǎn)成JSONString的處理
主要需求描述
有些返回值中的null需要轉(zhuǎn)換成“”或[],另外有些返回值需要把null給屏蔽掉。
解決方法
一(很lowb)
所有的返回值均采用string,在返回值之前,自己特殊處理成JSONString,然后返回給前端即可。
二(比較正統(tǒng))
通過(guò)配置FastJsonConfig,配置類(lèi)如下:
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
//1.定義一個(gè)convert轉(zhuǎn)換消息對(duì)象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
//2.添加fastjson的配置信息,比如:是否要格式化返回json數(shù)據(jù)
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat,
SerializerFeature.WriteNullStringAsEmpty,
SerializerFeature.DisableCircularReferenceDetect,
SerializerFeature.WriteNullListAsEmpty
);
PropertyFilter propertyFilter = new PropertyFilter() {
@Override
public boolean apply(Object object, String name, Object value) {
if (object instanceof MessageFor841 && value == null) {
return false;
}
return true;
}
};
fastJsonConfig.setSerializeFilters(propertyFilter);
fastConverter.setFastJsonConfig(fastJsonConfig);
converters.add(fastConverter);
}
}
這里解釋一下PropertyFilter類(lèi)中的apply方法,
首先3個(gè)參數(shù):
object:可以理解成需要轉(zhuǎn)成json的對(duì)象name:字段名(屬性名)value:字段值(屬性值)
返回值是一個(gè)boolean值,為true時(shí),則對(duì)應(yīng)轉(zhuǎn)成成jsonstring,為false時(shí),則過(guò)濾掉。
這里類(lèi)型為MessageFor841且它的屬性字段為null時(shí)返回false,表示此字段過(guò)濾掉。
其他類(lèi)型null字段轉(zhuǎn)成""或[]
JSON.toJSONString
后端想將HashMap類(lèi)型數(shù)據(jù)返回成json字符串
即導(dǎo)入并使用JSON.toJSONString
使用前提
pom.xml
? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba</groupId> ? ? ? ? ? ? <artifactId>fastjson</artifactId> ? ? ? ? ? ? <version>1.2.28</version> ? ? ? ? </dependency>
使用頁(yè)需自己寫(xiě)入下列語(yǔ)句,否則無(wú)法自行導(dǎo)入
import com.alibaba.fastjson.JSON;
使用
HashMap<String, Object> data = new HashMap<>();
List<MainMenu> mainMenus = menuDao.getMainMenus();
data.put("data",mainMenus);
data.put("status",200);
String data_json = JSON.toJSONString(data);
System.out.println("成功訪問(wèn)?。?!");
return data_json;以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過(guò)自定制LogManager實(shí)現(xiàn)程序完全自定義的logger
本章主要闡述怎么完全定制化LogManager來(lái)實(shí)現(xiàn)應(yīng)用程序完全自定制的logger,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析
這篇文章主要介紹了Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
100-200之間所有素?cái)?shù)求和程序代碼(二個(gè)版本)
寫(xiě)一個(gè)求100-200之間素?cái)?shù),并求和的程序,大家參考使用吧2013-11-11
Idea安裝及涉及springboot詳細(xì)配置的圖文教程
這篇文章主要介紹了Idea安裝及涉及springboot詳細(xì)配置,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10
IDEA創(chuàng)建springboot依賴下載很慢的解決方法
maven會(huì)使用遠(yuǎn)程倉(cāng)庫(kù)來(lái)加載依賴,是一個(gè)國(guó)外的網(wǎng)站,所以會(huì)很慢,本文主要介紹了IDEA創(chuàng)建springboot依賴下載很慢的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下2023-12-12
Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解
這篇文章主要介紹了Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09
Java計(jì)算Date類(lèi)時(shí)間差實(shí)例代碼演示
最近工作中遇到需要計(jì)算時(shí)間差,這里給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Java計(jì)算Date類(lèi)時(shí)間差的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12

