首页 > 解决方案 > 从外部、远程 JSON 模式中引用子键

问题描述

我已经开始在我的一个项目中使用 JSON Schema。我仍然无法理解如何协同工作,以及$id工具、等如何组合在一起。这是一个场景:$ref$idbase_uri

我在文件中定义了我的架构schema.json。该文件托管在我的网站上https://example.com/schema.json$id架构的是https://example.com/schema/$schema"http://json-schema.org/draft-07/schema"。_

我可以在https://www.jsonschemavalidator.net/的验证器中使用此模式,方法是为其提供一个引用 URL 的模式,并且验证有效(无效实例失败等)。

{
  "$ref": "https://example.com/schema.json"
}

我可以使用"$ref": "https://example.com/schema.json#/properties/subkey". "$ref": "https://example.com/schema#/properties/subkey"无法解决,可能是因为在模式存储中找不到它?

所以现在,如果我想让它工作 - "$ref": "https://example.com/schema#/properties/subkey",我是否必须将文件重命名为 simple schema?或者还有其他方法可以如何工作?

标签: validationjsonschema

解决方案


“schema”和“schema.json”指向不同的文件,因此您需要重命名文件以匹配 $ref 中的 uri,或者更改 $ref 以引用正确的文件名。

本指南可能会有所帮助:构建复杂的模式


推荐阅读