如何生成jsonschema,以便它验证数组中的所有对象?
我试图使用JSON模式验证JSON输入,但它的工作方式与我需要的不同 我有以下输入JSON(其中的一部分): 以及以下json模式(也是其中的一部分): 我希望验证失败,因为不允许使用“state”属性(由于的“additionalProperties”:false选项) 但是,我可以在数组的第二项中添加/更改任何内容,验证总是成功的。当我更改第一项中的任何内容时,验证失败(如预期的那样) 我错过了什么如何生成jsonschema,以便它验证数组中的所有对象?,json,jsonschema,Json,Jsonschema,我试图使用JSON模式验证JSON输入,但它的工作方式与我需要的不同 我有以下输入JSON(其中的一部分): 以及以下json模式(也是其中的一部分): 我希望验证失败,因为不允许使用“state”属性(由于的“additionalProperties”:false选项) 但是,我可以在数组的第二项中添加/更改任何内容,验证总是成功的。当我更改第一项中的任何内容时,验证失败(如预期的那样) 我错过了什么 谢谢你的帮助 JSON模式草案7状态 如果“items”是一个模式,那么如果 数组已根据该架
谢谢你的帮助 JSON模式草案7状态 如果“items”是一个模式,那么如果 数组已根据该架构成功验证 如果“items”是一个模式数组,那么如果每个元素 在同一位置对模式进行验证,如果 任何 在模式中,
items
是一个数组,这意味着您只将该数组中的子模式应用于实例数组的第一个元素。只需从项中删除方括号
,子模式将应用于实例中的所有项
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"admin_state": {
"type": "string",
"default": "enabled",
"enum": [
"disabled",
"enabled"
]
}
},
"additionalProperties": false
},
"minItems": 1
}
现在完全有道理了,谢谢你的清晰解释。我刚刚测试了它,它工作得非常完美!欢迎对答案进行投票并接受它们=]如果您有任何问题无法在此处提问(或只是加入),也请随时加入JSON模式。[@Relequestual您为我节省了很多时间。在线模式生成器在所有地方都添加了方括号。
{
"type": "array",
"items": [
{
"type": "object",
"properties": {
"admin_state": {
"type": "string",
"default": "enabled",
"enum": [
"disabled",
"enabled"
]
}
},
"additionalProperties": false
}
],
"minItems": 1
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"admin_state": {
"type": "string",
"default": "enabled",
"enum": [
"disabled",
"enabled"
]
}
},
"additionalProperties": false
},
"minItems": 1
}