树结构的JSON模式

Gan*_*jan 3 json jsonschema

我必须构建Json数据的树状结构。每个节点都有一个id(一个整数,必填),一个标签(一个字符串,可选)和一个子节点数组(可选)。您能帮我如何为该Json数据编写JSON模式。我还需要根据需要在子节点中设置ID。

{
    "Id": 1,
    "Label": "A",
    "Child": [
        {
            "Id": 2,
            "Label": "B",
            "Child": [
                {
                    "Id": 5,
                    "Label": "E"
                }, {
                    "Id": 6,
                    "Label": "E"
                }, {
                    "Id": 7,
                    "Label": "E"
                }
            ]
        }, {
            "Id": 3,
            "Label": "C"
        }, {
            "Id": 4,
            "Label": "D",
            "Child": [
                {
                    "Id": 8,
                    "Label": "H"
                }, {
                    "Id": 9,
                    "Label": "I"
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

ven*_*rik 5

该结构的模式仅需要一个节点的定义和对该节点的引用。属性Children(从重命名Child)也引用node

这是模式:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "$ref": "#/definitions/node",
  "definitions": {
    "node": {
      "properties": {
        "Id": {
          "type": "integer"
        },
        "Label": {
          "type": "string"
        },
        "Children": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/node"
          }
        }
      },
      "required": [
        "Id"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)