2017-12-20 25 views
0

によって制約値の名前と値を表すために、私持っているすべてのJSONスキーマ名

"units": { "name": "EU", "value": "Grams" } 
"units": { "name": "EU", "value": "Kilograms" } 
"units": { "name": "US", "value": "Ounces" } 
"units": { "name": "US", "value": "Pounds" } 

名の値は、EUと米国とに依存すべき有効な値の値とすることができる有効な次のようなJSONスニペット名前の値。

JSONスキーマのenumを両方のプロパティに使用するのは簡単ですが、JSONスキーマを使用して追加の制約を適用できますか?

名前オブジェクトと値オブジェクトの間に親子関係が存在するようにスキーマ全体を変更することを検討しますが、これは避けるのが理想的です。

答えて

0

私は例を使って動作させるためにhttps://www.jsonschemavalidator.net/を使用してそれをクラックすることができました。次のスキーマは、ソリューションを提供します。

"units": { 
    "type":"object", 
    "oneOf": [ { 
     "properties": { 
     "name": { "enum": [ "EU" ] }, 
     "value": { "enum" : ["Grams", "Kilograms"]}}}, { 
     "properties": { 
     "name": { "enum": [ "US" ] }, 
     "value": { "enum": ["Ounces", "Pounds"]}}}] 
}