0

我正在使用 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,所以有一个验证很好机制。

我怎样才能做到这一点?

4

1 回答 1

1

您无法使用 JSON Schema 实现这一点,没有任何关键字组合可以保证这一点。

但是,如果您喜欢冒险(我什至可以为您编写代码),您可以使用我的 JSON Schema API并编写自定义关键字来满足您的需求。这是可行的。

于 2013-01-02T22:07:10.763 回答