已填充属性之一的JSON模式
如何设置JSON模式规则,以表示必须设置且需要一个属性 我尝试了各种方法来解决它,如:已填充属性之一的JSON模式,json,jsonschema,Json,Jsonschema,如何设置JSON模式规则,以表示必须设置且需要一个属性 我尝试了各种方法来解决它,如: { "id":"#", "required":true, "additionalProperties":true, "type":"object", "properties":{ "surname":{ "id":"surname", "required":true, "type":"string" }
{
"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 What是整数或station What是字符串名
请问有什么方法可以做到这一点吗?
其中一个只有在模式中直接使用时才是特殊的。当您在属性
中使用oneOf
时,它没有特殊意义,因此您实际上最终定义了一个名为“oneOf”
的属性
此外,不是属性定义要求某些东西,而是required
关键字。该关键字是必需属性的数组(不是布尔值,这是旧语法)
要执行所需操作,请创建一个oneOf
子句,其中一个选项需要“station\u id”
,另一个选项需要“station”
:
{
"oneOf": [
{"required": ["station"]},
{"required": ["station_id"]}
]
}
如果两者都存在,则数据将无效(因为只有一个条目被允许通过)