1

我想根据选中的复选框有条件地呈现输入字段。

此复选框是嵌套的,我不知道如何访问它。

我得到了这个工作:

{
  "type": "object",
  "properties": {
    "firstName": {
      "type": "boolean"
    }
  },
  "dependencies": {
    "firstName": {
      "oneOf": [
        {
          "properties": {
            "firstName": {
              "enum": [true]
            },
            "lastName": {
              "type": "string"
            }
          }
        }
      ]
    }
  }
}

这里的例子

现在,如果依赖项像这样嵌套怎么办?:

{
  "type": "object",
  "properties": {
    "test": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      }
    }
  },
  "dependencies": {
    "test": {
      "enabled": {
        "oneOf": [
          {
            "properties": {
              "enabled": {
                "enum": [true]
              },
              "lastName": {
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }
}

如您所见:我已尝试访问它,但无法正确识别。我将如何解决这个问题?这甚至可能吗?

JSON Scheme Validator说它是有效的

4

2 回答 2

1

看起来你必须拥有dependencies与属性相同的架构对象......像这样

{
  "type": "object",
  "properties": {
    "test": {
      "type": "object",
      "properties": {
        "enabled": {
          "type": "boolean"
        }
      },
      "dependencies": {
        "enabled": {
          "oneOf": [
            {
              "properties": {
                "enabled": {
                  "const": true
                },
                "lastName": {
                  "type": "string"
                }
              }
            }
          ]
        }
      }
    }
  }
}

这可行,但我不知道结果数据是否符合您的预期。

我是 JSON Schema 方面的专家,但我从未使用过表单生成工具。

于 2021-11-18T16:51:31.780 回答
1

您在“依赖项”->“测试”下缺少“属性”。该点下的所有内容都不会被识别为模式。

  "dependencies": {
    "test": {
      "properties": {
        "enabled": {
          ...

“依赖关系”记录在这里:https ://json-schema.org/understanding-json-schema/reference/conditionals.html#id5 。

于 2021-11-18T16:26:17.420 回答