2017-03-23 7 views
-1

Hersteller senden Sie mir ein JSON-Schema. Bitte schauen Sie sich diese:JSON-Schema ohne "Eigenschaften" Schlüsselwort

{ 
    "$schema" : "http://json-schema.org/draft-04/schema#", 
    "type" : "object", 
    "definitions" : { 
    ... 
    }, 
    "oneOf" : [{ 
     "$ref" : "#/definitions/commons/strings/text" 
    }, { 
     "$ref" : "#/definitions/dto/scriptStep" 
    }, { 
     "$ref" : "#/definitions/dto/callResult" 
    } 
    ] 
} 

Es gibt keine „Eigenschaften“ Schlüsselwort ist (sondern durch die Art und Weise gibt es sehr große „Definitionen“ Teil). Bedeutet es, dass das Schema tatsächlich das leere json-Objekt {} beschreibt? Oder bedeutet es, dass JSON eines der Elemente aus "oneOf" -Array enthalten könnte?

Antwort

2

Alle JSON-Schema-Schlüsselwörter sind Einschränkungen. Zum Beispiel bedeutet das leere Schema {}, dass JSON gültig ist. Ein Schema mit nur `{" type ":" object "} bedeutet, dass jedes JSON-Objekt gültig ist. Es gibt keine Einschränkungen für die Eigenschaften des Objekts.

Dies ist jedoch nicht das, was Ihr Anbieter in diesem Schema ausdrückt. Der JSON muss nicht nur gegen "type": "object", sondern auch gegen eines der drei in oneOf referenzierten Schemas gültig sein. Vermutlich enthalten diese Schemas ein Schlüsselwort properties.

Dies ist wahrscheinlich nicht das am besten entworfene Schema, aber es ist gültig.

Verwandte Themen