2016-12-22 12 views
1

私はJSON Schema - specify field is required based on value of another fieldを試しましたが、以下の状況ではうまくいかないです。入れ子フィールドの値に基づいてjsonスキーマフィールドが必要です

インスタンス1

{ 

    "part1": { 
     "subPartA" : { 
      "value": "X" 
     } 
    }, 
    "partX": { 
     "propXX": "val1", 
     "prop2": null 

    } 
} 

インスタンス2

{ 

    "part1": { 
     "subPartA" : { 
      "value": "Y" 
     } 
    }, 
    "partY": { 
     "propYY": "val123", 
     "prop2": null 

    } 
} 

part1.subPart1.value = "Y"

場合 part1.subPart1.value = "X"partY.propYYが必要な場合はどのように1は partX.propXXが必要で作るん

答えて

1

あなたはデータの値が(JSONスキーマキーワードを使用できません)必要なプロパティ名の一部になりたいという意味ではない限り、あなたはこの相関関係を行うことができます。

{ 
    "type": "object", 
    "required": ["part1"], 
    "properties": { 
    "part1": { 
     "type": "object", 
     "required": ["subPartA"], 
     "properties": { 
     "subPartA": { 
      "type": "object", 
      "required": ["value"], 
      "properties": { 
      "value": { 
       "type": "string" 
      } 
      } 
     } 
     } 
    } 
    }, 
    "anyOf": [ 
    { 
     "required": ["partX"], 
     "properties": { 
     "part1": { 
      "properties": { 
      "subPartA": { 
       "properties": { 
       "value": { 
        "enum": ["X"] 
       } 
       } 
      } 
      } 
     }, 
     "partX": { 
      "type": "object", 
      "required": ["propXX"], 
      "properties": { 
      "propXX": { 
       "type": "string" 
      } 
      } 
     } 
     } 
    }, 
    { 
     "required": ["partY"], 
     "properties": { 
     "part1": { 
      "properties": { 
      "subPartA": { 
       "properties": { 
       "value": { 
        "enum": ["Y"] 
       } 
       } 
      } 
      } 
     }, 
     "partY": { 
      "type": "object", 
      "required": ["propYY"], 
      "properties": { 
      "propYY": { 
       "type": "string" 
      } 
      } 
     } 
     } 
    } 
    ] 
} 
+0

は動作しません - してみてください - http://json-schema-validator.herokuapp.com/。 JSONインスタンスを有効にするためにコンマを挿入するように質問を更新しました。 – bhantol

+0

はあなたのプロパティ名と混同されました:part/prop ...修正されました。 – esp

+0

http://jsonschemalint.com/#/version/draft-05/markup/json?gist=a648a6e220dbe6488b4278279de17597 – esp

関連する問題