在jdorn / json-editor中选择几个属性集

时间:2015-06-30 19:55:05

标签: jsonschema

我已经在我的JSON模式中定义了两个不同的属性集,我正在尝试组合一个编辑器,允许用户选择几个属性集中的一个,然后填充相应的属性。

这是我的架构:

{
    "type": "object",
    "title": "Test Configuration",
    "properties": {
        "master_property_set": {
            "title": "Testing oneOf",
            "oneOf": [
                {
                    "type": "object",
                    "title": "Property set 1",
                    "properties": {
                        "property1": {
                            "type": "string"
                        },
                        "property2": {
                            "type": "string"
                        }
                    }
                },
                {
                    "type": "object",
                    "title": "Property set 2",
                    "properties": {
                        "property3": {
                            "type": "string"
                        },
                        "property4": {
                            "type": "string"
                        }
                    }
                }
            ]
        }
    }
}

问题是,当我切换到Property set 2时,我的数据仍包含property1property2作为空字符串,它们会显示在编辑器中。他们应该被删除。我做错了什么?

可以在此处测试设置:http://goo.gl/j91of7

2 个答案:

答案 0 :(得分:1)

我在文档中找到了答案。原来,编辑器的no_additional_properties属性需要设置为true。

答案 1 :(得分:-1)

    {
      "type": "object",
      "title": "Test Configuration",
      "properties": {
        "master_property_set": {
          "title": "Testing oneOf",
          "oneOf": [
            {
              "type": "object",
              "title": "Property set 1",
              "properties": {
                "property1": {
                  "type": "string"
                },
                "property2": {
                  "type": "string"
                }
              },
              "additionalProperties":false
            },
            {
              "type": "object",
              "title": "Property set 2",
              "properties": {
                "property3": {
                  "type": "string"
                },
                "property4": {
                  "type": "string"
                }
              },
              "additionalProperties":false
            }
          ]
        }
      }
    }