欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot返回值轉(zhuǎn)成JSONString的處理方式

 更新時(shí)間:2022年06月18日 08:40:46   作者:wz_ling1991  
這篇文章主要介紹了springboot返回值轉(zhuǎn)成JSONString的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

返回值轉(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.定義一個(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類中的apply方法,

首先3個(gè)參數(shù):

  • object:可以理解成需要轉(zhuǎn)成json的對(duì)象
  • name:字段名(屬性名)
  • value:字段值(屬性值)

返回值是一個(gè)boolean值,為true時(shí),則對(duì)應(yīng)轉(zhuǎn)成成jsonstring,為false時(shí),則過濾掉。

這里類型為MessageFor841且它的屬性字段為null時(shí)返回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>

使用頁(yè)需自己寫入下列語(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("成功訪問?。。?);
 return data_json;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 通過自定制LogManager實(shí)現(xiàn)程序完全自定義的logger

    通過自定制LogManager實(shí)現(xiàn)程序完全自定義的logger

    本章主要闡述怎么完全定制化LogManager來實(shí)現(xiàn)應(yīng)用程序完全自定制的logger,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-03-03
  • Java中MD5的使用代碼示例

    Java中MD5的使用代碼示例

    這篇文章主要給大家介紹了關(guān)于Java中MD5的使用示例,MD5加密是一種常見的加密方式,我們經(jīng)常用在保存用戶密碼和關(guān)鍵信息上,需要的朋友可以參考下
    2023-08-08
  • Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析

    Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析

    這篇文章主要介紹了Springboot簡(jiǎn)單熱部署實(shí)現(xiàn)步驟解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 100-200之間所有素?cái)?shù)求和程序代碼(二個(gè)版本)

    100-200之間所有素?cái)?shù)求和程序代碼(二個(gè)版本)

    寫一個(gè)求100-200之間素?cái)?shù),并求和的程序,大家參考使用吧
    2013-11-11
  • Idea安裝及涉及springboot詳細(xì)配置的圖文教程

    Idea安裝及涉及springboot詳細(xì)配置的圖文教程

    這篇文章主要介紹了Idea安裝及涉及springboot詳細(xì)配置,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • IDEA創(chuàng)建springboot依賴下載很慢的解決方法

    IDEA創(chuàng)建springboot依賴下載很慢的解決方法

    maven會(huì)使用遠(yuǎn)程倉(cāng)庫(kù)來加載依賴,是一個(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ì)案例詳解

    這篇文章主要介紹了Java將json對(duì)象轉(zhuǎn)換為map鍵值對(duì)案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java計(jì)算Date類時(shí)間差實(shí)例代碼演示

    Java計(jì)算Date類時(shí)間差實(shí)例代碼演示

    最近工作中遇到需要計(jì)算時(shí)間差,這里給大家總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Java計(jì)算Date類時(shí)間差的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java之常用類小結(jié)案例講解

    Java之常用類小結(jié)案例講解

    這篇文章主要介紹了Java之常用類小結(jié)案例講解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 詳解Java8中的Lambda表達(dá)式

    詳解Java8中的Lambda表達(dá)式

    這篇文章主要介紹了Java8中的Lambda表達(dá)式的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評(píng)論