2017-06-08 5 views
1

Meine aktuelle JSON-Schema-Definition wie diese JSON Schema machen Eigenschaft erforderlich bedingt

{ 
    "properties": { 
    "account_type": { 
     "description": "account type", 
     "enum": [ 
     "CURRENT", 
     "SAVINGS", 
     "DEMAT" 
     ], 
     "type": "string" 
    }, 
    "demat_account_number": { 
     "description": "demat_account_number", 
     "type": "string" 
    } 
    }, 
    "required": [ 
    "account_type" 
    ], 
    "type": "object" 
} 

Meine Forderung ist, wenn "account_type" = "DEMAT", dann "demat_account_number" sollte

ist Attribut ein erforderliches werden.

Gibt es eine Möglichkeit, diese Validierung zu erreichen?

Antwort

1

Sie können "oneOf" verwenden. Dies erzwingt übereinstimmende Dokumente, um nur eines von einer Anzahl von möglichen Mustern zu implementieren:

{ 
    "oneOf":[ 
     { 
      "properties":{ 
       "account_type":{ 
        "description":"account type", 
        "enum":[ 
         "CURRENT", 
         "SAVINGS" 
        ], 
        "type":"string" 
       } 
      }, 
      "required":[ 
       "account_type" 
      ], 
      "type":"object" 
     }, 
     { 
      "properties":{ 
       "account_type":{ 
        "description":"account type", 
        "enum":[ 
         "DEMAT" 
        ], 
        "type":"string" 
       }, 
       "demat_account_number":{ 
        "description":"demat_account_number", 
        "type":"string" 
       } 
      }, 
      "required":[ 
       "account_type", 
       "demat_account_number" 
      ], 
      "type":"object" 
     } 
    ] 
} 
+0

Works ... Danke !! –

Verwandte Themen