springboot返回值轉(zhuǎn)成JSONString的處理方式
返回值轉(zhuǎn)成JSONString的處理
主要需求描述
有些返回值中的null需要轉(zhuǎn)換成“”或[],另外有些返回值需要把null給屏蔽掉。
解決方法
一(很lowb)
所有的返回值均采用string,在返回值之前,自己特殊處理成JSONString,然后返回給前端即可。
二(比較正統(tǒng))
通過配置FastJsonConfig,配置類如下:
@Configuration public class WebConfig extends WebMvcConfigurerAdapter { @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); //1.定義一個convert轉(zhuǎn)換消息對象 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類中的apply方法,
首先3個參數(shù):
object
:可以理解成需要轉(zhuǎn)成json的對象name
:字段名(屬性名)value
:字段值(屬性值)
返回值是一個boolean值,為true時,則對應(yīng)轉(zhuǎn)成成jsonstring,為false時,則過濾掉。
這里類型為MessageFor841且它的屬性字段為null時返回false,表示此字段過濾掉。
其他類型null字段轉(zhuǎn)成""或[]
JSON.toJSONString
后端想將HashMap類型數(shù)據(jù)返回成json字符串
即導(dǎo)入并使用JSON.toJSONString
使用前提
pom.xml
? ? ? ? <dependency> ? ? ? ? ? ? <groupId>com.alibaba</groupId> ? ? ? ? ? ? <artifactId>fastjson</artifactId> ? ? ? ? ? ? <version>1.2.28</version> ? ? ? ? </dependency>
使用頁需自己寫入下列語句,否則無法自行導(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("成功訪問?。?!"); return data_json;
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過自定制LogManager實現(xiàn)程序完全自定義的logger
本章主要闡述怎么完全定制化LogManager來實現(xiàn)應(yīng)用程序完全自定制的logger,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03100-200之間所有素數(shù)求和程序代碼(二個版本)
寫一個求100-200之間素數(shù),并求和的程序,大家參考使用吧2013-11-11IDEA創(chuàng)建springboot依賴下載很慢的解決方法
maven會使用遠程倉庫來加載依賴,是一個國外的網(wǎng)站,所以會很慢,本文主要介紹了IDEA創(chuàng)建springboot依賴下載很慢的解決方法,具有一定的參考價值,感興趣的可以了解一下2023-12-12Java將json對象轉(zhuǎn)換為map鍵值對案例詳解
這篇文章主要介紹了Java將json對象轉(zhuǎn)換為map鍵值對案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-09-09