JSONSchema 将一个大模式文件拆分为多个逻辑小文件

标签 json jsonschema

我希望将 json 模式的公共(public)部分捕获到一个文件中,然后从主模式文件中引用这个文件。所以基本上不是 1 个大的 json 模式文件,而是多个相互引用的文件。我正在使用 json-schema-validator lib 进行验证。

例如。:

$ ls schemas/
response_schema.json results_schema.json

$ cat schemas/response_schema.json
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "type": "object",
    "required": [ "results" ],
    "properties": {
        "results": "####Reference results_schema.json file here somehow####"
    }
}   

$ cat schemas/results_schema.json
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "type": "array",
    "items": {
        "type": "object",
        "required": ["type", "name"],
        "properties": {
            "name": { "type": "string" },
            "dateOfBirth": { "type": "string" }
        }
    }
}

最佳答案

以下解决方案对我有用:

    "results": {
        "$ref": "file:src/test/resources/schemas/results.json"
    }

上述解决方案满足我的要求:
  • 我所有的架构文件都在本地文件系统上,而不是由某些 url
  • 托管
  • 指定的路径相对于我运行 mvn 目标的目录。
  • 关于JSONSchema 将一个大模式文件拆分为多个逻辑小文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18376215/

    相关文章:

    json - Spring 的 @WebMvcTest 不适用于 Java 8 类型

    具有一些固定项目的可变长度数组的 JSON 模式

    JSON 架构 : Require properties on an optional object type

    jsonschema - 使用 json-schema 来要求或禁止基于另一个属性值的属性?

    JSON 架构 : required field

    json - 具有 (RegEx) 模式的 json-schema 中的枚举

    python - 你如何将多个json文件添加到elasticsearch

    objective-c - 在IOS中发出http请求并从返回的json对象中解析特定数据

    python - 请求正文具有无效的 json 格式 - Python

    javascript - 如何按降序对 JSON 数组元素进行排序?