在我的应用程序中,我必须测试发回给我们的json验证一个确切的格式 - 在我的情况下,有一个Body和一个Head Block,但不是更多。我根据2个JSON验证了给定的json模式,两者都是有效的 - 有没有办法让多个“Head”或“Body”节点通过?
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "ValidResponse",
"type": "object",
"properties": {
"Head": {
"type": "object"
},
"Body": {
"type": "object"
}
},
"additionalProperties": false,
"required":["Head", "Body"]
}
此块应验证错误! --- v
{
"Body" : {
},
"Head" : {
},
"Head" : {
}
}
此块应验证正确! --- v
{
"Body" : {
},
"Head" : {
}
}
答案 0 :(得分:1)
问题是您的输入不是有效的JSON,因此您应该使用JSON解析器或在将此类输入上的错误传递给模式检查器之前。
大多数JSON解析器会默默地忽略其中一个重复的Head
属性。在任何情况下,您的JSON模式检查器永远不会知道存在包含重复属性的输入。
答案 1 :(得分:0)
此块无效...
{
"Body" : {
},
"Head" : {
},
"Head" : {
}
}
您可以通过http://jsonlint.com/
等验证程序运行它如果您使用的任何验证器都说它有效,那么验证器就会出现问题。