情况如下:
1。)在一个对象中,我可以有一个“字符串”,“数组”或另一个“对象”。
2。)“数组”只能包含“字符串”。
3。)“对象”可以包含1.)这意味着我可以在一个对象中拥有一个对象,该对象只能有一个字符串或数组(或者甚至更多的嵌套对象)
问题现在是1.)和2.)工作但是只要我将“$ ref”添加到“对象”以获得3.)我的验证服务器崩溃并发生堆栈溢出。
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "object",
"properties": {
"value": {
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "object",
"patternProperties": {
".*": {
"$ref": "#/properties/value"
}
}
}
]
}
}
}
第"$ref": "#/properties/value"
行打破了我的代码。
我如何让它工作?
答案 0 :(得分:1)
我自己修好了。行"$ref": "#/properties/value"
必须更改为"$ref": "#/properties"
我认为#/ properties意味着只允许在这些对象中使用属性“value”,这不是我想要的。我希望得到“价值”的内容,所以我更进了一步。
看起来"$ref": "#/properties"
并不意味着只允许“值”,而只意味着“值”的属性。