2017-12-20 8 views
0

gezwungen zu repräsentieren haben die folgenden JSON-Schnipsel, die EU sein können alle gültigenJSON Schema einen Namen und Wert mit dem Wert von Name, den ich

"units": { "name": "EU", "value": "Grams" } 
"units": { "name": "EU", "value": "Kilograms" } 
"units": { "name": "US", "value": "Ounces" } 
"units": { "name": "US", "value": "Pounds" } 

Die Namen Werte und US und der gültigen Wert Wert sollte auf die abhängig Name Wert.

Es ist einfach, JSON-Schemaaufzählungen für diese beiden Eigenschaften zu verwenden, aber kann ich die zusätzliche Integritätsbedingung mithilfe von JSON-Schema erzwingen?

Ich würde in Betracht ziehen, das Gesamtschema so zu ändern, dass zwischen einem Namensobjekt und einem Wertobjekt eine Eltern-Kind-Beziehung besteht, aber dies würde idealerweise vermieden.

Antwort

0

Ich schaffte es, es zu knacken, zu verwenden, um ein Beispiel zu arbeiten. Das folgende Schema bietet die Lösung:

"units": { 
    "type":"object", 
    "oneOf": [ { 
     "properties": { 
     "name": { "enum": [ "EU" ] }, 
     "value": { "enum" : ["Grams", "Kilograms"]}}}, { 
     "properties": { 
     "name": { "enum": [ "US" ] }, 
     "value": { "enum": ["Ounces", "Pounds"]}}}] 
} 
Verwandte Themen