精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Spring Boot 中使用 JSON Schema 來校驗復雜 JSON 數據

開發 前端
在數據交換領域,JSON Schema 以其強大的標準化能力,為定義和規范 JSON 數據的結構與規則提供了有力支持。通過一系列精心設計的關鍵字,JSON Schema 能夠詳盡地描述數據的各項屬性。

JSON是我們編寫API時候用于數據傳遞的常用格式,那么你是否知道JSON Schema呢?

在數據交換領域,JSON Schema 以其強大的標準化能力,為定義和規范 JSON 數據的結構與規則提供了有力支持。通過一系列精心設計的關鍵字,JSON Schema 能夠詳盡地描述數據的各項屬性。然而,僅憑 JSON Schema 本身,尚不足以驗證 JSON 實例是否嚴格遵循預設的模式。此時,JSON Schema 驗證器的角色便顯得尤為關鍵。這些驗證器如同嚴格的檢查官,確保每一個 JSON 文檔都能忠實地反映出模式的定義。JSON Schema 驗證器,作為實現 JSON Schema 規范的技術工具,其靈活的集成能力使得無論項目規模大小,都能輕松地將 JSON Schema 融入開發流程,從而提升數據處理的效率與準確性。

圖片圖片

下面我們來看看如何在Spring Boot應用中使用JSON Schema校驗JSON數據

動手試試

  1. 創建一個基本的Spring Boot應用,如果還不會可以點擊查看Spring Boot快速入門[1]
  2. 在pom.xml中添加json-schema-validator依賴
<dependency>
  <groupId>com.networknt</groupId>
  <artifactId>json-schema-validator</artifactId>
  <version>1.4.0</version>
</dependency>
  1. 創建JSON Schema

在src/main/resources目錄下創建一個validation.json文件,然后在里面制定一套詳盡的驗證規則,比如下面這樣:

{
 "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Order Event",
    "description": "Order event schema for example",
    "required": ["order_id", "total_price", "products" ],
    "properties": {
       "order_id": {
          "type": "string"
        },
        "event": {
          "enum": ["PLACED", "DELIVERED", "RETURNED"],
          "type": "string"
        },
        "total_price": { 
         "type": "number",
             "minimum": 0
     },
        "products": {
      "type": "array",
      "items": {
        "additionalProperties": true,
        "required": ["product_id", "price"],
        "minItems": 1,
        "properties": {
          "product_id": {
            "type": "string"
          },
          "price": {
            "type": "number",
            "minimum": 0
          },
          "quantity": {
            "type": "integer"
          }
        }
      }
    }
   }
}
  1. 創建 JsonSchema 的 Bean

當然,你也可以直接new來創建,但實戰中還是推薦用Spring管理這些實例,比如 下面這樣:

@Configuration
public class JsonSchemaConfiguration {

    private static final String SCHEMA_VALIDATION_FILE = "validation.json";
   
    @Bean
    public JsonSchema jsonSchema() {
        return JsonSchemaFactory
                .getInstance( SpecVersion.VersionFlag.V7 )
                .getSchema( getClass().getResourceAsStream( SCHEMA_VALIDATION_FILE ) );
    }
}
  1. 使用 JsonSchema
@Slf4j
@Service
public class JsonSchemaValidationService{
  
  @Autowired
  private JsonSchema jsonSchema;
  
  public String validateJson(JsonNode jsonNode){
    
    Set<ValidationMessage> errors = jsonSchema.validate(jsonNode);
    if(errors.isEmpty()){
      log.info("event is valid");
    }else{
      log.info("event is invalid");
     }
      return errors.toString();
  }
}
  1. 在 Web 層的應用

創建一個Controller,當接收到來自客戶端的JSON數據之后,就可以像下面這樣對json數據進行校驗:

import com.fasterxml.jackson.databind.JsonNode;
@RestController
public class JsonSchemaController {
    @Autowired
    private JsonSchemaValidationService service;

    @PostMapping("/test")
    public String validateEvent( @RequestBody JsonNode jsonNode ){
       return service.validateJson(jsonNode);
    }
}
  1. 測試一下

啟動 Sprint Boot 應用,然后使用你喜歡的http客戶端工具對/test接口發送測試請求:

比如,下面使用Curl來進行測試:

  • 符合規則的合法請求:
$ curl --location 'localhost:8080/test' \
--header 'Content-Type: application/json' \
--data '{
  "order_id":"order134",
   "event": "PLACED",
   "products": [
     {
       "product_id": "product_1",
        "price":20.5,
       "quantity":2
     }
   ],
   "total_price": 41
}'

校驗通過,返回:[],沒有錯誤信息

  • 不符合規則的非法請求(卻少order id):
$ curl --location 'localhost:8080/test' \
--header 'Content-Type: application/json' \
--data '{
   "event": "PLACED",
   "products": [
     {
       "product_id": "product_1",
        "price":20.5,
       "quantity":2
     }
   ],
   "total_price": 41
}'

校驗失敗,將返回錯誤信息:[$.order_id: is missing but it is required]

參考資料

[1]Spring Boot快速入門: https://www.didispace.com/spring-boot-2/1-2-quick-start.html

[2]Spring技術交流群: https://www.didispace.com/jiaqun.html

[3]Spring Boot教程可以點擊直達!: https://www.didispace.com/spring-boot-2/

[4]What is JSON Schema?: https://json-schema.org/overview/what-is-jsonschema

[5]JSON Schema validator: https://www.jsonschemavalidator.net/

責任編輯:武曉燕 來源: 程序猿DD
相關推薦

2025-10-27 02:00:00

2025-02-07 09:11:04

JSON對象策略

2021-08-10 15:11:27

Spring Boot參數校驗

2011-05-25 13:22:05

PHPJSON

2021-08-12 10:32:50

Spring Boot參數校驗分組校驗

2025-03-21 09:58:59

Python數據類型安全

2010-01-05 16:33:35

使用JSON

2024-04-29 07:50:52

C#AES加密

2017-12-27 15:16:35

Spring BootFlyway數據庫

2010-08-05 13:07:11

FlexJson

2022-11-22 11:47:25

JSON格式外置表單

2025-01-13 12:46:31

SpringBootJacksonJSON

2011-07-19 09:08:38

jQuery

2022-02-08 17:07:54

Spring BooSpring Aop日志記錄

2012-07-17 16:37:43

json

2023-07-17 18:42:47

gRPCDemo項目

2024-12-03 08:00:00

2022-07-26 16:54:08

QuartzJava

2025-07-29 04:11:00

SpringJSON數據

2025-05-29 01:22:00

FeignJSONRPC
點贊
收藏

51CTO技術棧公眾號

久久免费精品国产久精品久久久久| 欧美三级三级| 午夜精彩视频在线观看不卡| 国外成人在线视频网站| 日韩免费视频一区二区视频在线观看| 久久综合欧美| 欧美一区二区不卡视频| 欧美日本视频在线观看| 3d成人动漫在线| 国产成人自拍网| 欧美专区在线视频| 国产精品三区在线观看| 色爱av综合网| 宅男在线国产精品| 成人av一级片| a级网站在线播放| 2023国产精品自拍| 91在线观看欧美日韩| 免费观看成人毛片| 国产精品v欧美精品v日本精品动漫| 日韩av在线免费观看一区| 91亚洲精品久久久蜜桃借种| 久久影院午夜精品| 亚洲男人的天堂在线aⅴ视频| 久久久久se| 精品国产18久久久久久| 视频一区二区三区入口| 久久久在线免费观看| 日韩一级片在线免费观看| 好吊妞视频这里有精品| 7777女厕盗摄久久久| 欧美国产日韩在线播放| heyzo中文字幕在线| 亚洲日本在线a| 日本在线视频一区| 天天影院图片亚洲| 国产精品888| 成人淫片在线看| 中文字幕你懂的| 丝袜亚洲精品中文字幕一区| 国内成人精品一区| 欧美日韩中文字幕在线观看| 欧美电影一二区| 中文字幕亚洲一区二区三区五十路| 日韩精品人妻中文字幕有码| 亚洲精品影片| 欧美成人一区二区三区| 国产5g成人5g天天爽| 亚洲福利影视| 欧美精品亚洲一区二区在线播放| 国产福利影院在线观看| gogo亚洲高清大胆美女人体| 欧美性20hd另类| 久久精品.com| 久久夜夜操妹子| 91福利在线导航| 久久综合久久色| 欧美黄色网页| 在线观看日韩毛片| 我看黄色一级片| 色猫猫成人app| 欧美日韩免费观看一区二区三区| 成年网站在线播放| 祥仔av免费一区二区三区四区| 欧美日韩精品免费观看视频| 国产日韩欧美久久| 高清久久一区| 精品999在线播放| a级一a一级在线观看| 青草久久视频| 亚洲一区二区国产| 久久精品亚洲a| 欧美日韩少妇| 91国在线精品国内播放| 国产伦精品一区二区三区视频网站| 嫩草成人www欧美| 国产精品高精视频免费| 一级黄色片网站| 国产精品2024| 久久久水蜜桃| 午夜视频在线观看免费视频| 18成人在线观看| 国产xxxx振车| 国产精品一品| 在线观看日韩电影| 久久精品无码一区二区三区毛片| 国产精品调教视频| 国产午夜精品一区二区三区| 三级av在线免费观看| 极品av少妇一区二区| 国产精品jizz在线观看麻豆| 一区二区三区免费观看视频| 粉嫩嫩av羞羞动漫久久久| 欧美精彩一区二区三区| 国产激情视频在线| 精品成人国产在线观看男人呻吟| 污视频网站观看| 久久精品色播| 日韩中文字幕国产| 国产成人自拍视频在线| 美女看a上一区| 国产一区二区三区无遮挡| 在线看av的网址| 精品电影在线观看| 国产无色aaa| 中文字幕伦av一区二区邻居| 久久综合电影一区| 天堂网中文字幕| 国产精品小仙女| 日韩偷拍一区二区| 精品丝袜在线| 日韩一区二区免费在线电影| 人妻丰满熟妇av无码久久洗澡 | 美女任你摸久久| 国产日韩亚洲精品| 黄视频在线观看网站| 欧美视频在线观看免费| 麻豆传媒在线看| 日韩精品dvd| 热久久美女精品天天吊色| 午夜精品久久久久久久99老熟妇 | 国产一区二区精品在线观看| 狼狼综合久久久久综合网| a黄色片在线观看| 欧美嫩在线观看| 精品成人无码一区二区三区| 国产欧美一级| 国产精品免费一区二区三区| 欧美成人精品一区二区男人看| 欧美午夜影院在线视频| 欧美一级片黄色| 亚洲一级高清| 99热最新在线| 性爱视频在线播放| 欧美精品粉嫩高潮一区二区| 国产成人免费观看网站| 亚洲专区欧美专区| 欧美日韩国产一二| 日韩深夜视频| 日韩精品在线免费| 91视频免费网址| 93久久精品日日躁夜夜躁欧美 | 三级黄色录像视频| 日韩av中文字幕一区二区三区 | 婷婷综合在线| 国产欧美一区二区三区久久人妖| 国产天堂素人系列在线视频| 日韩欧美黄色动漫| 日韩中文字幕电影| 丝袜美腿亚洲一区二区图片| 欧美日韩国产精品一区二区| 欧美日韩精品免费观看视欧美高清免费大片 | 欧美日韩福利在线观看| www.99视频| 亚洲成人1区2区| 成人h动漫精品一区| 国产精品婷婷| 婷婷久久青草热一区二区| 色猫猫成人app| 久久精品视频va| 国产av一区二区三区| 亚洲综合免费观看高清完整版 | 99色精品视频| 国产成人黄色| 成人黄色大片在线免费观看| av片哪里在线观看| 精品久久久三级丝袜| 欧美三级韩国三级日本三斤在线观看| 99在线视频精品| 国产精品无码一本二本三本色| 国产精品一线天粉嫩av| 国产日韩欧美自拍| 久久久123| 日韩va亚洲va欧洲va国产| 午夜精品久久久久久久蜜桃| 国产精品美女久久久久久久| 日本少妇xxx| 亚洲影院一区| 天堂av免费看| 四虎5151久久欧美毛片| 国产精品嫩草视频| 天堂8中文在线| 亚洲欧美www| ,亚洲人成毛片在线播放| 亚洲成人av电影在线| 日韩欧美黄色网址| 国产盗摄精品一区二区三区在线| 欧美日韩性生活片| 日韩欧美自拍| 国产伦精品一区二区三区高清版| 日本精品不卡| 蜜月aⅴ免费一区二区三区| 亚洲AV第二区国产精品| 欧美乱妇一区二区三区不卡视频| 精品无码av在线| 国产精品视频看| 日本黄色动态图| 黄色资源网久久资源365| 欧美啪啪免费视频| 午夜欧美精品| 亚洲欧洲一二三| 秋霞综合在线视频| 91久久精品www人人做人人爽| 电影一区二区三| 欧美韩国理论所午夜片917电影| 久草在现在线| 亚洲爱爱爱爱爱| 国产一区二区在线不卡| 一本一道久久a久久精品| 中文字幕在线有码| 国产精品美女久久久久aⅴ| 国产肉体xxxx裸体784大胆| 国产美女在线精品| 人人干人人干人人| 午夜在线a亚洲v天堂网2018| 黄色特一级视频| 婷婷中文字幕一区| 日韩中文一区二区三区| 久久这里只有精品一区二区| 亚洲一区免费网站| 青青在线精品| 国产精品激情av在线播放| 亚洲福利影院| 欧美日韩国产成人在线| 免费高清在线观看| 最好看的2019年中文视频| 奇米影视888狠狠狠777不卡| 精品国产成人在线影院| 精品国产av鲁一鲁一区 | 黄色手机在线视频| 丝袜美腿亚洲一区| 久久国产色av免费观看| 亚洲欧美日韩国产一区二区| 国产av人人夜夜澡人人爽麻豆| 欧美成人一品| 国产精品h视频| 久久一区二区三区电影| 四虎一区二区| 久久国产电影| 午夜一区二区三区| 日产精品一区二区| 视频一区二区在线观看| japanese国产精品| 亚洲欧美电影在线观看| 日本道不卡免费一区| 视频一区视频二区视频三区视频四区国产| 亚洲婷婷丁香| 欧美亚洲免费高清在线观看 | 精品免费视频.| 亚洲经典一区二区三区| 日韩精品在线网站| 国产1区在线观看| 亚洲第一网站免费视频| 无码国产色欲xxxx视频| 精品亚洲一区二区三区四区五区| 亚洲 欧美 精品| 亚洲欧洲日本专区| wwwww在线观看免费视频| 色综久久综合桃花网| 老司机av在线免费看| 欧美大片欧美激情性色a∨久久| 怡红院av在线| 97成人超碰免| 欧美成人精品一区二区男人小说| 国产精品精品久久久| 日韩精品一页| 成人性色av| 三级精品视频| 亚洲狠狠婷婷综合久久久| 亚洲久久久久| 黄色一级片在线看| 久久一二三四| 三级黄色片免费看| 成人av影院在线| 51妺嘿嘿午夜福利| 亚洲视频免费在线| 日韩精品久久久久久久酒店| 色网站国产精品| 99热精品在线播放| 亚洲精品乱码久久久久久按摩观| 国产免费av高清在线| 久久天天躁狠狠躁夜夜爽蜜月| 福利成人导航| 国产精品老牛影院在线观看| 欧美电影在线观看一区| 蜜桃av噜噜一区二区三| 我不卡神马影院| 久色视频在线播放| 麻豆精品视频在线| 亚洲精品乱码久久久久久蜜桃图片| 久久久久久久久久久黄色| 永久久久久久久| 在线观看免费一区| 亚洲第九十九页| 国产亚洲欧美日韩精品| av中文字幕在线播放| 日本久久久久亚洲中字幕| 国产一区2区在线观看| 免费在线成人av| 欧美日韩午夜| 奇米影音第四色| 91麻豆国产在线观看| 亚洲一二三在线观看| 欧美性极品xxxx娇小| av中文字幕观看| 中文字幕精品久久| 亚洲电影观看| 国产精品污www一区二区三区| 日韩成人精品一区| 色欲av无码一区二区人妻| 国产成人午夜视频| 女教师淫辱の教室蜜臀av软件| 精品久久久免费| 亚洲精品无amm毛片| 色妞久久福利网| 三上悠亚国产精品一区二区三区| av一区二区三区免费| 91一区在线| 不卡av免费在线| 91免费在线视频观看| 久久综合激情网| 制服丝袜av成人在线看| av网站在线免费观看| 日本韩国在线不卡| 久久大胆人体视频| 久久亚洲精品无码va白人极品| 韩日av一区二区| 国产三级精品三级观看| 欧美吻胸吃奶大尺度电影| 青青久在线视频免费观看| 性色av一区二区三区| 在这里有精品| 天堂а√在线中文在线| 国模大尺度一区二区三区| av在线播放中文字幕| 欧美中文字幕一区二区三区 | 136福利视频导航| 色吧影院999| 巨大黑人极品videos精品| 天天久久人人| 老司机一区二区| 女同久久另类69精品国产| 欧美日韩午夜精品| 欧美成人精品一区二区男人看| 国产美女精彩久久| 97精品中文字幕| www激情五月| 亚洲在线一区二区三区| 丰满少妇被猛烈进入| 久久久久日韩精品久久久男男 | 国产麻豆91精品| 欧美日韩一级在线观看| 精品少妇一区二区三区在线视频| 色呦呦视频在线观看| 国产精品中出一区二区三区| 在线不卡欧美| 91精品人妻一区二区| 在线观看日韩高清av| 天天影视久久综合| 亚洲一区二区三区777| 国产精品sm| 欧美bbbbb性bbbbb视频| 欧美优质美女网站| 国产三级在线播放| 国产91精品入口17c| 一本久久综合| 免费视频91蜜桃| 欧美巨大另类极品videosbest | 亚洲精品久久一区二区三区777 | 九九热视频这里只有精品| 91欧美日韩在线| 国产熟女高潮视频| 国产精品另类一区| 午夜精品久久久久久久91蜜桃| 欧美孕妇与黑人孕交| 久久视频在线| 五月天丁香社区| 91成人免费在线| 在线视频中文字幕第一页| 久久久久久久有限公司| 久久99国产精品麻豆| 国产精品9191| 中文字幕最新精品| 国产精品对白久久久久粗| 亚洲精品高清无码视频| 一区二区三区久久| 国产中文在线观看| 91九色蝌蚪成人| 日韩av电影一区| 日本少妇全体裸体洗澡| 中文字幕国产亚洲| 欧美激情网址| 搡的我好爽在线观看免费视频| 黑人极品videos精品欧美裸| 欧美精品电影| 欧美一区二区视频在线| 成人午夜免费视频| 91久久精品无码一区二区| 538国产精品一区二区免费视频 | 国产chinasex对白videos麻豆|