簡體   English   中英

JSON Schema oneOf特色填充

[英]JSON Schema oneOf properies filled

如何設置JSON Schema規則以確定必須設置其中一個屬性並且是必需的?

我嘗試了各種方法來解決它:

{
   "id":"#",
   "required":true,
   "additionalProperties":true,
   "type":"object",
   "properties":{
      "surname":{
         "id":"surname",
         "required":true,
         "type":"string"
      },
      "oneOf":[
         {
            "$ref":"#/definitions/station_id"
         },
         {
            "$ref":"#/definitions/station"
         }
      ]
   },
   "definitions":{
      "station_id":{
         "type":"integer"
      },
      "station":{
         "type":"string"
      }
   }
}

但它從來沒有奏效。 我需要做的是接受station_id什么是整數或者什么是字符串名稱。

請問有辦法嗎?

oneOf僅在模式中直接使用時才是特殊的。 當你在內部properties使用oneOf ,它沒有特殊含義,所以你實際上最終定義了一個名為"oneOf"的屬性。

此外 - 不是必需的屬性定義,它是required關鍵字。 此關鍵字是必需屬性的數組(不是布爾值,即舊語法)。

要做你想做的事,你做一個oneOf子句,其中一個選項需要"station_id" oneOf ,另一個選項需要"station"

{
    "oneOf": [
        {"required": ["station"]},
        {"required": ["station_id"]}
    ]
}

如果兩者都存在,則該數據將被無效(因為只有一個oneOf條目被允許通過)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM