Asi*_*Rex 3 arrays validation json jsonschema
关于这个主题有几个问题,但它们似乎都没有解决这个特定问题,关于 JSON Schema 的文档也没有,所以可能无法完成。
问题是我有一个数组,可以将 4 个字符串中的任何一个作为值,使用此模式很容易实现:
...
"attributes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"controls",
"autoplay",
"muted",
"loop"
]
},
"additionalItems": false
}
...
Run Code Online (Sandbox Code Playgroud)
所以数组中的值只能是这四个值之一。尽管如此,“控件”必须始终是数组的一部分,而其他三个是可选的。如果它是一个对象数组,我们可以将其设为必需,但我不确定如何检查具有特定值的数组。
谢谢你的帮助!
您可以使用contains关键字:
"attributes": {
"type": "array",
"items": {
"type": "string",
"enum": [
"controls",
"autoplay",
"muted",
"loop"
]
},
"contains": {
"const": "controls"
},
"additionalItems": false
}
Run Code Online (Sandbox Code Playgroud)
从规范:
6.4.6. 包含
此关键字的值必须是有效的 JSON 模式。
如果数组实例至少有一个元素对给定模式有效,则数组实例对“包含”有效。
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |