2016-07-18 12 views
0

Ich versuche, ein JSON-Schema für eine bestehende JSON-Datei zu erstellen, die etwa wie folgt aussieht:eine Typdefinition für eine Eigenschaft mit dem Namen „Typ“ mit JSON Schema erstellen

{ 
    "variable": { 
    "name": "age", 
    "type": "integer" 
    } 
} 

Im Schema, ich will die type Eigenschaft hat den Wert string oder integer zu gewährleisten:

{ 
    "variable": { 
    "name": "string", 
    "type": { 
     "type": "string", 
     "enum": ["string", "integer"] 
    } 
    } 
} 

Leider sprengt es mit der Meldung: ValidationError {is not any of [subschema 0]....

Ich habe gelesen, dass es im JSON-Schema "keine reservierten Wörter" gibt, also nehme ich an, ein Typ von Typ ist gültig, vorausgesetzt, ich erkläre es richtig?

Antwort

1

Nach the specification im Valid types Abschnitt type:

Der Wert dieses Schlüsselwort entweder sein muss, eine Zeichenfolge oder ein Array. Wenn es ein Array ist, MÜSSEN Elemente des Arrays Strings sein und MÜSSEN eindeutig sein. String-Werte MÜSSEN einer der sieben Grundtypen sein, die in der Kernspezifikation definiert sind.

Später in Conditions for successful validation:

Eine Instanz paßt erfolgreich, wenn sein Urtyp einer der Typen von Schlüsselwort definiert ist. Rückruf: "Nummer" enthält "Integer".

In Ihrem Fall:

{ 
    "variable": { 
    "name": "string", 
    "type": ["string", "integer"] 
    } 
} 
Verwandte Themen