以下是根据PEP0263和http://jsonlint.com/的有效JSON架构。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["results"],
"additionalProperties": false,
"properties": {
"results": {
"type": "string",
"oneOf": [
{ "result": "1" },
{ "result": "2" },
{ "result": "3" },
{ "result": "4" }
]
}
}
}
以下JSON在针对上述架构进行验证时报告错误(results is the wrong type
):
{
"results" : {
"result": "1"
}
}
有人可以建议我如何解决此错误吗?
答案 0 :(得分:13)
在这种情况下,您看起来像$routechangestart
而不是enum
。以下是定义架构的方法。
oneOf
但问题是如何正确使用{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["results"],
"additionalProperties": false,
"properties": {
"results": {
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": ["1", "2", "3", "4"]
}
}
}
}
}
。 oneOf
关键字应该是一个模式数组,而不是您在示例中使用的值。 oneOf
中只有一个模式必须验证要验证的oneOf
子句的数据。我必须稍微修改您的示例以说明如何使用oneOf
。此示例允许oneOf
为字符串或整数。
result
答案 1 :(得分:2)
results
是object
的类型,但您提到的类型为String
。如果我将类型更改为object
,它就可以正常工作。