json模式不允许多个相同的节点
在我的应用程序中,我必须测试返回给我们的json是否验证了确切的格式——在我的例子中,有一个主体和一个头块,但不是更多。我针对2个json验证了给定的json模式,并且两者都是有效的-有没有办法不让多个“Head”或“Body”节点通过json模式不允许多个相同的节点,json,validation,jsonschema,Json,Validation,Jsonschema,在我的应用程序中,我必须测试返回给我们的json是否验证了确切的格式——在我的例子中,有一个主体和一个头块,但不是更多。我针对2个json验证了给定的json模式,并且两者都是有效的-有没有办法不让多个“Head”或“Body”节点通过 { "$schema": "http://json-schema.org/draft-04/schema#", "title": "ValidResponse", "type": "object", "properties": {
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ValidResponse",
"type": "object",
"properties": {
"Head": {
"type": "object"
},
"Body": {
"type": "object"
}
},
"additionalProperties": false,
"required":["Head", "Body"]
}
这个区块应该验证错误---五
这个区块应该是正确的---五
此块无效
{
"Body" : {
},
"Head" : {
},
"Head" : {
}
}
您可以通过验证程序运行它,例如
如果你使用的任何验证器都说它是有效的,那就是验证器有问题 问题是您的输入不是有效的JSON,因此在将输入传递给模式检查器之前,应该使用JSON解析器或linter来检查这些输入上的错误
不过,大多数JSON解析器都会默默地忽略重复的
Head
属性之一。在任何情况下,JSON模式检查器都不会知道存在包含重复属性的输入。。。。虽然这个验证器的工作方式似乎相当“正式”Ok,但是没有办法让json模式检查json是否是正确的json格式。。。Json格式本身必须在检查schemaYes之前正确,您必须验证Json本身,当它仍然是文本时,使用linter或Json解析器进行这种验证(不知道是否有)。
{
"Body" : {
},
"Head" : {
}
}
{
"Body" : {
},
"Head" : {
},
"Head" : {
}
}