2016-02-17 12 views
7

Sto tentando di documentare un utilizzo esistente di JSON utilizzando json-schema. Il sistema consente le seguenti due possibilità per uno degli attributi dell'oggetto.Come rappresentare i tipi di somma/unione nello schema json

In entrambi i

{ 
    "tracking_number" : 123 
} 

O

{ 
    "tracking_number" : [ 123, 124, 125 ] 
} 

Come posso esprimere questo schema JSON utilizzando?

risposta

6

Utilizzare anyOf per affermare che la proprietà deve essere conforme a uno o un altro schema.

{ 
    "type": "object", 
    "properties": { 
     "tracking_number": { 
      "anyOf": [ 
       { "$ref": "#/definitions/tracking_number" }, 
       { "type": "array", "items": { "$ref": "#/definitions/tracking_number" } 
      ] 
    }, 
    "definitions": { 
     "tracking_number": { "type": "integer" } 
    } 
} 
+4

Dovevo ridere quando ho letto il tuo nome ... Quella è una persona che può dare consigli su JSON! – gnasher729

+0

Si scopre che "oneOf" è stato meglio per me in questa situazione. Ma tu mi metti sulla strada giusta. –