2017-03-21 14 views
0

JSONスキーマを検証しますstdItem/children/0のパスに必要な属性stdTypestdAttributesが見つかりませんでした。属性が表示されているので、それらは欠落していません。カントは、子供たちに私はこのようなJSONスキーマに取り組んでいます

属性の順序を変更しようとしましたが、まだ動作しませんでした。次のエラーが表示され続けます。

--- BEGIN MESSAGES --- error: object has missing required properties (["stdAttributes","stdType"]) level: "error" schema: {"loadingURI":"#","pointer":"/definitions/stdItem"} instance: {"pointer":"/stdItem/children/0"} domain: "validation" keyword: "required" required: ["stdAttributes","stdType"] missing: ["stdAttributes","stdType"] --- END MESSAGES ---

私が間違っていることを誰かが指摘できますか?

答えて

1

"子供"プロパティを宣言すると、それは "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を検証します。 (必要に応じて宣言しませんでしたが、追加することもできます)

関連する問題