精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

性欧美长视频免费观看不卡| 欧美午夜激情小视频| 国产精品久久久久久久久久久不卡| wwwwxxxx国产| 九九久久国产| 亚洲激情六月丁香| 国产伦视频一区二区三区| 日韩精品一区二区三| 秋霞影视一区二区三区| 色综合久久久网| 伊人av成人| 色欲av永久无码精品无码蜜桃 | 日本精品网站| 亚洲免费在线观看视频| 亚洲伦理中文字幕| 欧美日韩在线中文| www免费网站在线观看| 久久精品国产网站| 欧美疯狂性受xxxxx另类| 人体私拍套图hdxxxx| 国产私拍福利精品视频二区| 自拍视频在线观看一区二区| 国产精品一区二区三区在线| jizz国产在线| 亚洲天堂偷拍| 最新69国产成人精品视频免费| 国产a级片视频| 色老太综合网| 亚洲图片欧美综合| 神马影院午夜我不卡影院| 亚洲伦理在线观看| 美日韩一区二区| 97精品伊人久久久大香线蕉| 日本女人性生活视频| 久久中文字幕导航| 777色狠狠一区二区三区| 真人做人试看60分钟免费| 国产在线视频你懂得| 福利一区在线观看| 国产拍精品一二三| 国产精品视频一区在线观看| 欧美日韩免费观看一区=区三区| 亚洲人成网7777777国产| 男人添女人荫蒂国产| 成人国产精品入口免费视频| 亚洲综合丁香婷婷六月香| 久久国产精品久久精品国产| 国产成人精品白浆久久69| 日韩综合小视频| 91精品国产高清久久久久久久久| 色偷偷www8888| 成人久久综合| 精品视频中文字幕| 天天躁日日躁狠狠躁av麻豆男男| 成人亚洲视频| 91黄色免费观看| 国产综合av在线| 国产精品69xx| 一区二区高清免费观看影视大全| 亚洲日本精品国产第一区| 久久久久久青草| 99视频一区二区| 精品免费日产一区一区三区免费| 亚洲av无码片一区二区三区| 久久精品国产一区二区三| 国产精品九九九| 日本久久综合网| 久久九九国产| 日韩av色综合| 国产乱码77777777| 日韩电影免费在线观看网站| 国产成人亚洲综合91| 免费看一级视频| 久久中文精品| 国产精品a久久久久久| 久久青青草原亚洲av无码麻豆| 一区二区91| 欧美做爰性生交视频| 伊人手机在线视频| 久久久蜜桃一区二区人| 国产成人高清激情视频在线观看| 久久国产视频精品| 日韩精品久久久久久| 国产精品99久久99久久久二8| 欧美日韩 一区二区三区| 视频一区在线视频| 国产精品视频资源| 国产免费视频一区二区三区| 国产精品综合一区二区| 国产精品久久久久久久久久久久午夜片| 国精产品一品二品国精品69xx | 久久亚洲国产| 欧美大奶子在线| 免费网站看av| 99视频一区| 国产成人极品视频| 91在线精品入口| 豆国产96在线|亚洲| 国产在线一区二| 福利小视频在线观看| 国产精品高清亚洲| 成人在线国产视频| 超碰国产一区| 在线播放视频一区| 大尺度做爰床戏呻吟舒畅| 国产成人短视频在线观看| 一本色道久久88综合日韩精品| 中文国语毛片高清视频| 一区二区自拍| 国产精品自产拍在线观看中文| 国产wwwxxx| 国产99精品国产| 欧美伦理一区二区| 91在线中文| 色94色欧美sute亚洲线路一ni| caoporm在线视频| 久久超级碰碰| 久久天天躁日日躁| 久久亚洲精品国产| 青青国产91久久久久久| 国产精品久久久久久久久久直播| 国产在线小视频| 亚洲综合视频在线观看| 亚洲中文字幕久久精品无码喷水| 色妞ww精品视频7777| 亚洲天堂成人在线| 国产一级在线观看视频| 欧美亚洲一区| 国产高清精品一区二区三区| 成人精品一区二区三区校园激情 | 圆产精品久久久久久久久久久| 另类小说综合欧美亚洲| 精品免费二区三区三区高中清不卡 | 国产一区二区自拍| 欧美激情视频在线播放| 欧美日韩黄色大片| 欧美69精品久久久久久不卡 | 日产国产欧美视频一区精品| 91免费观看| 免费av在线网址| 日韩欧亚中文在线| chinese麻豆新拍video| 欧美.日韩.国产.一区.二区| 国产精品久久久久久久久免费看| 无码精品人妻一区二区三区影院| 亚洲靠逼com| 亚洲成人天堂网| 亚洲电影一级片| 国模吧一区二区| 亚洲成人久久精品| 亚洲欧美国产高清| 午夜视频在线网站| 凹凸成人精品亚洲精品密奴| 日本精品一区二区三区在线播放视频| 国产香蕉在线观看| 亚洲最新视频在线播放| 四虎成人在线播放| 午夜精品毛片| 91精品免费看| 老司机免费在线视频| 欧美日韩在线直播| 快灬快灬一下爽蜜桃在线观看| 亚洲国内欧美| 国产精品手机在线| 97在线视频免费观看完整版| 欧美xxxx老人做受| 久久久久性色av无码一区二区| 激情图片小说一区| 亚洲欧美影院| 色综合视频一区二区三区日韩| 中文字幕日韩综合av| 亚洲图片视频小说| 亚洲天堂免费看| 杨幂一区二区国产精品| 午夜国产一区| 成人疯狂猛交xxx| 午夜伦理大片视频在线观看| 亚洲大胆人体在线| 久久久精品免费看| 久久久精品一品道一区| 免费涩涩18网站入口| 国产一区二区三区电影在线观看| 日韩美女在线看| av播放在线| 在线观看91av| 久久午夜鲁丝片午夜精品| 成人激情av网| www.99热这里只有精品| 最新亚洲精品| 国产美女精品视频| 直接在线观看的三级网址| 精品国产污污免费网站入口| 日韩精品在线观看免费| 国产亚洲欧美激情| 日本高清久久久| 欧美三级网页| 蜜桃91精品入口| 成人国产一区| 色综合91久久精品中文字幕| 天堂中文在线官网| 欧美午夜精品理论片a级按摩| 欧美一级特黄高清视频| 成人黄色777网| 国产精品无码av无码| 伊人色**天天综合婷婷| 精品欧美一区二区三区久久久 | 成人亚洲免费视频| 亚洲黑丝一区二区| 日韩欧美在线电影| 日韩一区二区三区色| 性色av一区二区三区免费| 成人不用播放器| 精品久久人人做人人爰| 久久精品五月天| 亚洲图片自拍偷拍| а天堂中文在线资源| 国产精品888| 福利在线一区二区三区| 激情综合亚洲| youjizz.com亚洲| 天堂网av成人| 国产免费观看久久黄| 美女av在线免费看| 久久综合久中文字幕青草| 四虎影院在线播放| 日韩色在线观看| 国产成人精品一区二区色戒| 亚洲成av人片在线观看无码| 黄色激情小视频| 91在线观看污| 人妻巨大乳一二三区| 奇米色一区二区三区四区| 国产96在线 | 亚洲| 久久精品免费一区二区三区| 日韩av影视| 亚洲系列另类av| 114国产精品久久免费观看| 播放一区二区| 欧美亚州一区二区三区| sis001亚洲原创区| 欧美激情一区二区三区久久久| 成年人在线观看| 国产视频精品一区二区三区| 成人高潮片免费视频| 欧美日本一道本在线视频| 无码人妻精品一区二区三区不卡 | 日韩免费一二三区| 亚洲欧美一区二区三区极速播放 | 欧美精品久久久久久久免费| 午夜久久黄色| 最新黄色av网站| 日韩欧美午夜| 亚洲成人av动漫| 亚洲警察之高压线| 精品乱码一区二区三区| 九九热播视频在线精品6| 国产不卡一区二区在线观看| 电影中文字幕一区二区| 亚洲www在线观看| 国产在线视频欧美一区| 成人性生交大片免费观看嘿嘿视频| 国产极品久久久久久久久波多结野| 国产成人精品视频在线观看| 欧美片第一页| 国产成人高清激情视频在线观看| 热三久草你在线| 欧美在线观看网址综合| av综合电影网站| 国产成人综合亚洲| 午夜精品久久久久久久久久蜜桃| 欧美在线视频一区二区| 成人国产二区| 国产精品r级在线| 成人免费在线观看视频| 国产在线精品成人一区二区三区| 玖玖精品在线| 成人av免费在线看| 久久丝袜视频| 蜜桃精品久久久久久久免费影院| 伊人春色精品| 亚洲激情啪啪| 自产国语精品视频| 男女av免费观看| 国内精品伊人久久久久av一坑 | 鲁一鲁一鲁一鲁一澡| 日本亚洲免费观看| 国产又黄又嫩又滑又白| 久久久精品蜜桃| 丰满少妇高潮久久三区| 一本到不卡精品视频在线观看| 国产熟女一区二区丰满| 精品调教chinesegay| 成人免费网站在线观看视频| 97精品国产91久久久久久| 久久久久久久性潮| 久久riav| 欧美体内she精视频在线观看| 成人在线观看黄| 国产成人99久久亚洲综合精品| 日韩人妻无码一区二区三区| 一区二区在线看| 中文在线免费看视频| 亚洲激情在线观看| 成年人网站在线| 国产精品成人aaaaa网站| 精品av导航| 亚洲激情免费视频| 奇米一区二区三区av| 三级电影在线看| 一区二区三区高清在线| 中文av免费观看| 精品一区二区电影| sqte在线播放| 91精品婷婷国产综合久久蝌蚪| 色琪琪久久se色| 国产91在线视频观看| 成人一级片在线观看| 日本精品在线免费观看| 欧美午夜宅男影院| 日韩大片b站免费观看直播| 欧美激情第一页xxx| 色综合视频一区二区三区日韩 | 欧美日韩亚洲综合一区| 天堂a中文在线| 国自产精品手机在线观看视频| 国产视频一区二| 日韩av大全| 爽好久久久欧美精品| 国产亚洲无码精品| 午夜成人免费电影| 免费av网站观看| 欧美激情xxxx| 超碰97久久| 福利视频一区二区三区四区| 国产91在线观看丝袜| 久草视频免费播放| 精品裸体舞一区二区三区| 午夜激情在线| 国产不卡一区二区在线观看| 亚洲性色视频| 日本69式三人交| 天天综合色天天| 亚洲av成人无码久久精品老人| 97色在线视频观看| 老司机aⅴ在线精品导航| 国产婷婷一区二区三区| 不卡欧美aaaaa| 在线观看免费国产视频| 日韩av在线网| 日韩av中字| 天堂av一区二区| 奇米影视在线99精品| 日韩在线观看免| 欧美成人性福生活免费看| gogo高清午夜人体在线| 九九九九精品| 石原莉奈在线亚洲三区| 色婷婷国产精品免| 欧美精品视频www在线观看| 成人在线网址| 国产成人精品一区二区三区福利| 国产亚洲精品v| 91在线无精精品白丝| 7777女厕盗摄久久久| 蜜桃成人365av| 久久久一本精品99久久精品66 | 国产精品一久久香蕉国产线看观看| 青青草97国产精品麻豆| 男女污污视频网站| 午夜成人免费电影| 第九色区av在线| 91九色蝌蚪嫩草| 性娇小13――14欧美| 亚洲女人毛茸茸高潮| 精品日韩一区二区三区免费视频| 欧美aaaaa性bbbbb小妇| 日韩.欧美.亚洲| 高清不卡一二三区| 免费av中文字幕| 欧美成人一二三| 丝袜美腿综合| 久久久精品高清| 激情av一区二区| 日本美女高清在线观看免费| 国产精品一区二区三区免费| 日韩黄色免费网站| 久草视频免费在线| 亚洲新中文字幕| 一本一道久久a久久| 国产又大又黄又粗的视频| 亚洲一区电影777| 高清在线观看av| 国产精品污www一区二区三区| 老司机亚洲精品| 欧美日韩在线视频免费播放| 亚洲人成电影网| 一区二区三区在线资源| 日韩av片网站| 欧美视频免费在线| 91黄色在线|