我在架构中有两个属性,它们都是数组。我想比较它们的长度相等。
例如:
架构.json
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"thing": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {}
},
"values": {
"type": "array",
"items": {}
}
},
"required": ["fields", "values"]
}
}
}
数据.json
{
"thing": {
"fields:": ["age", "sex", "location"],
"values:": [25, "Male", "Cape Town"]
}
}
我想要比较模式中字段和值的长度相同。我该怎么做?
最佳答案
在 JSON Schema 中,所有验证关键字的范围都限定为它适用的值。换句话说,您无法根据另一个值验证一个值。
如果您以几乎任何其他方式重构此结构,您就不应该有任何问题。
例如,您可以使用 items
的数组形式定义对列表。关键词。
{
"thing": [
["age", 15],
["sex", "Male"],
["location", "Capetown"]
]
}
或者,您可以使用
additionalProperties
关键字并使用对象以更自然的方式显示键/值对。{
"thing": {
"age": 15,
"sex": "Male",
"location": "Capetown"
}
}
关于JSON Schema 比较两个属性为等长数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38624299/