2016-02-17 7 views
7

json-schemaを使用して既存のJSONの使用を文書化しようとしています。システムは、オブジェクト属性の1つに対して以下の2つの可能性を許容する。jsonスキーマで合計/共用体の型を表現する方法

どちらか

{ 
    "tracking_number" : 123 
} 

それとも

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

どのように私はこの使用してJSONスキーマを表現することができますか?

答えて

6

anyOfを使用して、プロパティが1つまたは別のスキーマに準拠している必要があることをアサートします。

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

私はあなたの名前を読むときに笑っていました...それはJSONに関する助言を与えることができる人です! – gnasher729

+0

このような状況では、「oneOf」が私にとってはより良かったということが分かります。しかし、あなたは正しい道に私を置いた。 –

関連する問題