你好伙伴stackoverflowers!
我对JSON架构代码和验证JSON数组有“问题”。我的问题是我要求数组中至少有一个元素遵循某个模式,但其余元素可以是自由形式。我不能假设我的搜索元素位于数组的某个位置。仅使用整数(为简单起见),问题可以改为:“编写一个模式,验证数组中至少有一个1,无论其位置如何”。积极的例子是:
[1]
[0, 0, 1]
["a", true, null, 1, false, null, 3.2]
[1, 1, 1, 1]
否定的例子是:
[]
["a"]
[0, 2, 4]
使用json-schema.org(草案04)中的文档并玩JSON Schema Validator我想出了我自己的解决方案,它使用双重否定并且感觉非常麻烦:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "testid",
"title": "test array schema",
"not": {
"items":
{
"not": { "enum": [1] }
}
}
}
它使用的原则是“not(for-all-items(not is 1))”,虽然有效,但感觉不是很优雅。对于我错过的数组有什么“需要”吗?
感谢您的反馈!
答案 0 :(得分:0)
你没有遗漏任何东西。您可以为所有项指定架构,也可以为每个索引指定架构。这就是你必须要做的所有事情。
草案05提出了contains
关键字,但草案05的进展已暂停一段时间了。您拥有的架构是草案04中最好的。