2016-07-27 5 views
2

両方の配列であるスキーマに2つのプロパティがあります。彼らは同じ長さだと私は比較したいと思います。例えばJSONスキーマ2つのプロパティを等しい長さの配列と比較する

schema.json

{ 
    "$schema": "http://json-schema.org/draft-04/schema#", 
    "type": "object", 
    "properties": { 
    "thing": { 
     "type": "object", 
     "properties": { 
     "fields": { 
      "type": "array", 
      "items": {} 
     }, 
     "values": { 
      "type": "array", 
      "items": {} 
     } 
     }, 
     "required": ["fields", "values"] 
    } 
    } 
} 

data.json

{ 
    "thing": { 
    "fields:": ["age", "sex", "location"], 
    "values:": [25, "Male", "Cape Town"] 
    } 
} 

私が希望するフィールドと値は、スキーマ内の同じ長さであることを比較することです。どうすればいい?

答えて

3

JSONスキーマでは、すべての検証キーワードのスコープは適用される値になります。つまり、ある値を別の値で検証することはできません。

この構造体をほとんど他の方法でリファクタリングする場合は、問題はありません。

たとえば、itemsキーワードの配列形式を使用してペアのリストを定義できます。

{ 
    "thing": [ 
    ["age", 15], 
    ["sex", "Male"], 
    ["location", "Capetown"] 
    ] 
} 

それとも、あなたはadditionalPropertiesキーワードを使用し、より自然な方法でキー/値のペアを表示するためにオブジェクトを使用することができます。

{ 
    "thing": { 
    "age": 15, 
    "sex": "Male", 
    "location": "Capetown" 
    } 
} 
関連する問題