2017-06-19 3 views
0

Ich arbeite an der Erstellung eines JsonSchema (v4). Ich versuche, eine Eigenschaft erforderlich, basierend auf dem Wert einer anderen Eigenschaft von ihrem Elternteil.JSON Schema - Feld ist erforderlich basierend auf einem anderen Feld Wert

Eltern

  • Benutzer
    • Subtyp
    • Adresse

Kinder

    Adresse
    • line1
    • line2
    • company (erforderlich, wenn Benutzer Subtyp Unternehmen)

Wie dies geschehen könnte? Ich habe so etwas wie dies jetzt ...

{ 
"User": { 
    "title": "User", 
    "type": "object", 
    "id": "#User", 
    "properties": { 
    "subtype": { 
     "type": "string" 
    }, 
    "address": { 
     "$ref": "Address" 
    } 
    } 
} 


"Address": { 
    "title": "Address", 
    "type": "object", 
    "id": "#Address", 
    "properties": { 
    "line1": { 
     "type": "string" 
    }, 
    "line2": { 
     "type": "string" 
    }, 
    "companyName": { 
     "type": "string" 
    } 
    }, 
    "required": ["line1", "line2"] 
} 
} 

Unterart ist eine beliebige Zeichenfolge, so dass eine vollständige Liste der verschiedenen Subtypen ist nicht möglich.

Antwort

0

Fügen Sie dies Ihrem Benutzerschema hinzu. Im Wesentlichen lautet es wie folgt: entweder "Untertyp" ist nicht "Firma" oder "Adresse" erfordert "Firmenname".

"anyOf": [ 
    { 
    "not": { 
     "properties": { 
     "subtype": { "enum": ["company"] } 
     } 
    } 
    }, 
    { 
    "properties": { 
     "address": { 
     "required": ["companyName"] 
     } 
    } 
    } 
] 
+0

Fantastisch vielen Dank! – neljamin

Verwandte Themen