【发布时间】:2015-06-06 00:41:21
【问题描述】:
我从http://json-schema.org/examples.html 获得了以下架构,我想知道 required 关键字是否只能出现在顶层。或者,如果有对象类型的属性,它也可以包含在属性中。我在规范 https://datatracker.ietf.org/doc/html/draft-fge-json-schema-validation-00#section-5.4.3 中找不到与此相关的任何内容。
{
"title": "Example Schema",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
}
所以下面的例子是一个有效的模式
{
"title":"Example Schema",
"type":"object",
"properties":{
"firstName":{
"type":"string"
},
"lastName":{
"type":"string"
},
"age":{
"type":"object",
"properties":{
"minAge":{
"type":"number"
},
"maxAge":{
"type":"number"
},
"required":[
"minAge",
"maxAge"
]
}
}
},
"required":[
"firstName",
"lastName"
]
}
【问题讨论】:
-
您的嵌套
required放错了位置。它需要是properties的对等体,而不是孩子。您在顶层是正确的,所以我确定这只是错字。
标签: json jsonschema