[英]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.