国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

swagger對json數(shù)據(jù)的處理

這篇具有很好參考價值的文章主要介紹了swagger對json數(shù)據(jù)的處理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在實習中遇到了一個不尋常的事情,今天和同事討論一個小問題,同事使用swagger,想要調(diào)用一個接口,這個接口要傳遞一個json對象,對應(yīng)java的一個實體類,但是有一個屬性同事不想看到它,就用@JsonIgnore給注掉了(當時這個我不知道,??),問題出現(xiàn)的場景是在調(diào)用另一個接口的時候,impl類里需要查詢該字段,并向這個類傳遞這個屬性。他從數(shù)據(jù)庫中查詢到數(shù)據(jù)后設(shè)置給了這個屬性,最后調(diào)用json就是看不到這個屬性。

開始看的時候我也懵了,調(diào)試都有數(shù)據(jù),最終發(fā)現(xiàn)了是該屬性加上了@JsonIgnore注解。正好向我想起之前一篇文章的另一個注解@JSONField。好奇心驅(qū)使我在swager中做了對比。

其實這個問題很簡單的,只用在@ApiModelProperty注解中加上hidden = true就可以了(默認為false)。

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

這個問題解決。但是我是一個愛思考的人。他用的是@JSONField注解,而我之前沒有用過這個注解,我決定是嘗試使用一下。

一個簡單的場景

實體類

@ApiModel
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AA {
    
    @ApiModelProperty(name = "name")
    Integer id;

    @ApiModelProperty(name = "name")
    String name;
    
    @ApiModelProperty(name = "my_id")
    int my_id;
    
    List<String> list;

}

controller

@RestController
@RequestMapping("/admin/acl/index")
public class IndexController {
    @GetMapping("/test")
    public AA test() {
        AA aa = new AA();
        aa.setId(0);
        aa.setName("");
        aa.setMy_id(0);
        ArrayList<String> list = new ArrayList<>();
        list.add("張三");
        list.add("李四");
        list.add("王五");
        aa.setList(list);
        return aa;
    }
}

所有測試針對list屬性

1.list什么注解不加

swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

swagger竟然默認給到list一些信息。

postman也正常返回,畢竟什么也沒加

2.只給list加上@JsonIgnore

查看結(jié)果

swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

swagger中沒有l(wèi)ist字段

postman中沒有l(wèi)ist字段

加上@JsonIgnore注解后,list字段就像消失了一樣,沒人知道它是否存在。

我之前用的是@JSONField,我不僅是測試還是復(fù)習,觀察一下結(jié)果。

3.只給list加上@JSONField(name = "my_list")

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

?swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

這個name屬性怎么沒有起作用?是swagger太強勢了?

4.只給list加上@JSONField(serialize = false)

swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot?

?

?

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

這swagger這么強勢嗎?我的@JSONField直接失效,不序列化失效了。

不是swagger太強勢,而是@JSONField就沒有起作用,這個注解是fastjson的注解。

springboot中默認的json解析器是Jackson。如果不指定要用的json解析器,就會使用默認的。所以我們要想讓它起作用就要指定fastjson為我們的默認json解析器。

這次測試忘記了這個知識點(看來我還待練)

在配置類加上下面代碼即可

@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    fastConverter.setFastJsonConfig(fastJsonConfig);
    HttpMessageConverter<?> converter = fastConverter;
    return new HttpMessageConverters(converter);
}

查看效果

5.配置后只給list加上@JSONField(name = "my_list")

swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger中的list沒有使用別名

postman中使用了別名,并格式化了了json數(shù)據(jù)

6.配置后只給list加上@JSONField(serialize = false)

swagger

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

postman

swagger對json數(shù)據(jù)的處理,Java,json,java,spring boot

?

swagger還是會有l(wèi)ist字段

postman中已經(jīng)接受不到這個字段了

總結(jié):

1.不想在swagger文檔中顯示字段但傳遞是有這個字段就使用@ApiModelProperty(hidden = true)

2.不想在swagger文檔中顯示字段而且不想讓字段在返回結(jié)果中使用@JsonIgnore(如果只使用一個注解)

3.想在swagger文檔中顯示字段而且不想讓字段在返回結(jié)果中使用@JSONField(serialize = false)(如果只想使用這一個注解,暫時想不到有這樣的場景,手動狗頭)文章來源地址http://www.zghlxwxcb.cn/news/detail-602441.html

到了這里,關(guān)于swagger對json數(shù)據(jù)的處理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Java】Spring Boot配置動態(tài)數(shù)據(jù)源

    1.1 創(chuàng)建動態(tài)數(shù)據(jù)源 通過實現(xiàn)Spring提供的AbstractRoutingDataSource類,可以實現(xiàn)自己的數(shù)據(jù)源選擇邏輯,從而可以實現(xiàn)數(shù)據(jù)源的動態(tài)切換。 1.2 創(chuàng)建動態(tài)數(shù)據(jù)源配置類 跟配置靜態(tài)多數(shù)據(jù)源一樣,需要手動配置下面的三個 Bean,只不過DynamicDataSource類的targetDataSources是空的。 1.3 創(chuàng)建動

    2024年02月09日
    瀏覽(25)
  • Spring boot之WEB 開發(fā)-靜態(tài)資源訪問--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    Spring boot之WEB 開發(fā)-靜態(tài)資源訪問--自定義轉(zhuǎn)換器--處理JSON--內(nèi)容協(xié)商

    在線文檔: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications 1. 只要靜態(tài)資源放在類路徑下: /static 、/public 、/resources 、/META-INF/resources可以被直接訪問- 對應(yīng)文件WebProperties.java 2. 常見靜態(tài)資源:JS、CSS 、圖片(.jpg .png .gif .bmp .svg)、字體

    2024年02月09日
    瀏覽(37)
  • Java(一):創(chuàng)建 Spring Boot 項目并實現(xiàn)連接操作MySQL數(shù)據(jù)庫

    Java(一):創(chuàng)建 Spring Boot 項目并實現(xiàn)連接操作MySQL數(shù)據(jù)庫

    MySQL 命令 Maven 相關(guān)地址 下載地址: https://maven.apache.org/ maven配置方法地址: https://developer.aliyun.com/mvn/guide 倉庫搜索地址: https://mvnrepository.com/ https://repo.maven.apache.org/ maven 本地配置 conf/settings.xml 下載 idea 并配置本地環(huán)境 maven Maven 構(gòu)建 生命周期 Maven 的構(gòu)建 生命周期 包括 三

    2024年02月07日
    瀏覽(28)
  • spring boot 集成 swagger3

    spring boot 集成 swagger3

    ? ????????Swagger 3是一種開源的API描述工具,它可以幫助開發(fā)人員設(shè)計、構(gòu)建、文檔化和測試API。Swagger 3支持多種編程語言和框架,包括Java、Node.js、Python、Ruby等,并提供了許多集成工具和插件,例如Postman、Apigee等。 Swagger 3使用OpenAPI規(guī)范來描述API,這是一種通用的API描述

    2024年02月06日
    瀏覽(24)
  • Spring Boot 整合 Swagger 教程詳解

    Spring Boot 整合 Swagger 教程詳解

    ?作者簡介:2022年 博客新星 第八 。熱愛國學的Java后端開發(fā)者,修心和技術(shù)同步精進。 ??個人主頁:Java Fans的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當前專欄:SpringBoot 框架從入門到精通 ?特色專欄:國學周更-心性養(yǎng)成之路 ??本文內(nèi)容:Spring Boot 整

    2023年04月14日
    瀏覽(27)
  • Spring Boot 中如何使用 Swagger

    Spring Boot 中如何使用 Swagger

    在開發(fā) Web 應(yīng)用時,API 文檔的編寫和維護是一項非常重要的工作。Swagger 是一款非常流行的 API 文檔工具,可以自動生成 API 文檔,并提供一系列的交互式工具,如測試界面、調(diào)試界面等,方便開發(fā)者進行 API 的調(diào)試和測試。本文將介紹如何在 Spring Boot 應(yīng)用中使用 Swagger。 首先

    2024年02月11日
    瀏覽(28)
  • Spring Boot整合Spring Fox生成Swagger文檔

    Spring Boot整合Spring Fox生成Swagger文檔

    Springfox是一個用于在Spring應(yīng)用程序中生成Swagger文檔的開源庫。它提供了一組注解和工具,可以將你的API代碼和文檔整合在一起,方便生成和展示API的Swagger文檔。 使用Springfox,你可以在Spring Boot項目中集成Swagger,并通過Swagger UI查看和測試API。它提供了一些注解,如 @Api 、 @

    2024年02月08日
    瀏覽(17)
  • Spring Boot 整合 Swagger2 糾錯

    ????????因為我要建立的是微服務(wù)的項目,需要建立許多模塊,以至于我在父工程中引入了當前模塊,然后我在子模塊中又引入了當前模塊,造成了沖突。 ????????另外一種解決方法是,經(jīng)過上網(wǎng)查證,可能由于Spring Boot和Swagger版本的問題,Spring Boot2.6以上的版本,需要使用

    2024年02月12日
    瀏覽(21)
  • swagger 2.10.5 整合 spring boot

    2024年02月11日
    瀏覽(20)
  • Spring Boot 禁用 Swagger 的三種方式

    Spring Boot 禁用 Swagger 的三種方式

    禁用方法1: ====== 使用注解 @Value() 推薦使用 package com.dc.config; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; impo

    2024年04月22日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包