json - json 模式中的对象重用和组合

标签 json json.net jsonschema

我有一个看起来像这样的 json blob;

{
     "ObjectA":
      {
          "Object1": {fields},
          "Object2": {fields},
          "Object3": {fields}
      },
      "ObjectB":
      {
          "Object1": {fields},
          "Object2": {fields},
          "Object3": {fields}
      }
}

有没有一种方法可以一次定义对象的 1、2 和 3 并在模式中重用它们?这可以用 json 模式来完成吗?我想像 C# 一样编写它,其中编号对象只定义一次,然后字母对象由它们组成。

编辑:为澄清起见,我正在尝试更正现有架构。该模式定义了每个字母对象中的编号对象,即使它们都具有完全相同的定义。

最佳答案

我在文档中找到了解决方案。

http://json-schema.org/latest/json-schema-core.html#anchor7

模式可以有子模式。所以我的代码现在看起来像;

  "ObjectB":
  {
      "Object1": {"title":"object1"},
      "Object2": {"title":"object2"},
      "Object3": {"title":"object3"}
  }

然后在该架构之外

{
    "Object1": {
         "title":"object1",
          //20 more lines of json
    }
}

关于json - json 模式中的对象重用和组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16349754/

相关文章:

python - json.dump 一个 concurrent.futures.Future()?

javascript - 如何将表单中的数据发布到本地 JSON 文件?

javascript - 从嵌套数组中获取 json 数据

c# - 使用 JSON.NET 反序列化 JSON 字符串

c# - 如何设置 Json.Net 序列化程序以自定义方式运行?

JSONSchema - 解析架构引用时出错

javascript - JSON jQuery 问题

c# - NewtonSoft JsonConvert 列表

javascript - json 模式 : how to transform from one json-schema to another

gradle - 运行时无法在 build.gradle 中包含 JSON Schema 验证 json 文件