我使用JSON来定义一些配置文件,我想用json scheme验证它们。我的问题是我想确保某个对象的键应该是在同一个JSON中定义的数组项的子集: 例如:
有效:
{
"files": ["file1", "file2"],
"filelocations": {
"file1": "/etc/globalconfigs/file1.conf",
"file2": "/usr/bin/file2.sh"
}
}
无效(其他密钥不在files
中):
{
"files": ["file1", "file2"],
"filelocations": {
"file1": "/etc/globalconfigs/file1.conf",
"otherkey": "/usr/bin/file2.sh"
}
}
等。我想要的是确保在filelocations
数组中找到files
的键。
虽然在这个例子中,我们可以通过组合键值来改变JSON的结构,这样就不需要有这种约束,在我的例子中我不能像这样改变JSON,所以很高兴有一个验证这个机制。
我怎样才能做到这一点?
答案 0 :(得分:1)
使用JSON Schema无法实现这一点,没有可以保证这一点的关键字组合。
如果您喜欢冒险(我甚至可以为您编写代码),您可以使用my JSON Schema API并编写自定义关键字以满足您的需求。这是可行的。