给出以下JSON文档
{
"nodes": [
{
"name": "Arbitrary"
},
{
"name": "String"
},
{
"name": "Allowed"
}
],
"edges": [
{
"tail": "Arbitrary",
"head": "Strings"
},
{
"tail": "Strings",
"head": "Allowed"
}
]
}
有没有办法通过JSON模式表达,tail
中的head
和edge
的值只能采用name
键定义的值node
?
我对描述edges
的直觉就像是
{
"type": "array",
"items": {
"type": "object",
"properties":{
"tail": {
"enum": {
"$ref": "#/nodes/*/name"
},
},
"head": {
"enum": {
"$ref": "#/nodes/*/name"
},
}
}
}
}
但JSON Pointer显然不允许在引用路径*
中使用通配符(#/nodes/*/name
)。
答案 0 :(得分:0)
不,这是不可能的。 According to the last draft:
此关键字的值必须是数组。这个数组应该至少有一个元素。数组中的元素应该是唯一的。
数组中的元素可以是任何类型,包括null。
如果某个实例的值等于此关键字的数组值中的某个元素,则该实例会成功验证此关键字。