我在模式中有两个属性,它们都是数组。我想比较一下他们是否等长。
例如:
{
"$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"]
}
}
}
{
"thing": {
"fields:": ["age", "sex", "location"],
"values:": [25, "Male", "Cape Town"]
}
}
我想要比较的是字段和值在架构中的长度相同。我该怎么做?
答案 0 :(得分:3)
在JSON Schema中,所有验证关键字的范围都限定为它适用的值。换句话说,您无法根据另一个值验证一个值。
如果你以几乎任何其他方式重构这个结构,你就不应该有任何问题。
例如,您可以使用items
关键字的数组形式定义对的列表。
{
"thing": [
["age", 15],
["sex", "Male"],
["location", "Capetown"]
]
}
或者,您可以使用additionalProperties
关键字并使用对象以更自然的方式显示键/值对。
{
"thing": {
"age": 15,
"sex": "Male",
"location": "Capetown"
}
}