JSON Schema表示名称和值受约束的名称和值

时间:2017-12-20 16:40:34

标签: jsonschema

我有以下JSON片段,这些片段都是有效的

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

名称值可以是EU和US,有效值值应取决于名称值。

对这两个属性使用JSON Schema枚举很容易,但我可以使用JSON Schema强制执行其他约束吗?

我会考虑更改整体架构,以便在名称对象和值对象之间存在父子关系,但理想情况下可以避免这种关系。

1 个答案:

答案 0 :(得分: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"]}}}]
}