"子供"プロパティを宣言すると、それは "stdItem"であると言われているので、stdAttributesおよびstdTypeプロパティがあると想定します。代わりに、あなたのjsonで持っているものは、stdItem型の "stdItem"プロパティです。 したがって、スキーマ内のそのプロパティ(stdItem)の宣言が欠落しています。私は「stdItem」プロパティを持つ「子」の項目仕様にオブジェクトを追加している
{
"$schema": "http://json-schema.org/schema#",
"title": "Layout",
"description": "The layout created by the user",
"type": "object",
"definitions": {
"stdAttribute": {
"type": "object",
"required": ["attributeName","attributeValue"],
"properties": {
"attributeValue": {
"type": "string"
},
"attributeName": {
"type": "string"
}
}
},
"stdItem": {
"type": "object",
"required" : ["stdType","stdAttributes"],
"properties": {
"stdType": {
"enum": [
"CONTAINER",
"TEXT",
"TEXTAREA",
"BUTTON",
"LABEL",
"IMAGE",
"MARCIMAGE",
"DATA",
"SELECT",
"TABLE"
]
},
"stdAttributes": {
"type": "array",
"items": {
"$ref": "#/definitions/stdAttribute"
},
"minItems": 1
},
"children": {
"type": "array",
"items": {
"type": "object",
"properties": {
"stdItem": { "$ref": "#/definitions/stdItem" }
}
}
}
}
}
},
"properties":{
"stdItem": { "$ref": "#/definitions/stdItem" }
}
}
お知らせ:
このスキーマは、あなたのJSONを検証します。 (必要に応じて宣言しませんでしたが、追加することもできます)