如何引用顶级数组 json 的模式

kal*_*ave 7 json jsonschema

我有一个包含项目列表的 JSON 文件。该文件中唯一存储的内容是以数组形式存储的项目。例如:

[
    {...},
    {...},
    {...},
]
Run Code Online (Sandbox Code Playgroud)

我想为此定义一个架构文件。这看起来很好,因为初始类型可以设置为数组,并且我可以将项目定义为类型。但我想引用项目 json 文件中的架构。不幸的是,它不是一个对象,所以我无法添加密钥"$schema"。我当然可以使 json 成为只有一个具有数组值的键的对象,但这似乎不是一个好的设计。

模式系统似乎有一些设计错误或者顶级数组 json 不受支持吗?

Rel*_*ual 4

我认为您可能已经假设$schema根据 JSON Schema 放入 JSON 数据具有任何意义。

但我想引用项目 json 文件中的架构。

赋予它的任何含义都不是来自 JSON Schema 规范。

$schema用于 JSON 模式。该规范没有定义任何方法来允许 JSON 文档识别为应符合架构的文档。

有一种方法可以利用 HTTP 标头,但仅此而已。

  • 嗯,是的。我想我只是为了获取 vs code 智能感知建议和问题。事实证明,您可以为感兴趣的人单独引用其架构:https://code.visualstudio.com/docs/languages/json#_mapping-in-the-user-settings (3认同)