json - React JSON 架构依赖关系

标签 json jsonschema react-jsonschema-forms jsonforms

我正在尝试编写一个与react-jsonschema-form一起使用的JSONSchema,但是在使依赖项正常工作并按正确的顺序时遇到问题。

  "properties":{
      "condition": {
          "type":"string",
          "enum":["1","2"],
           "options": {
           "dependencies":[
              {"id":"one","value":"1"},
              {"id":"two","value":"2"}
              ]
           }
      },
      "one":{
          "id":"one",
          "type":"number"
          },
      "two":{
          "id":"two",
          "type":"string"
      },
      "misc": {
        "type": "string"
      }
  },
  "type": "object"
}

在上面,我所希望的是有效的表单数据......

{
  "condition": "1",
  "one": 123
  "misc": "abc"
}

或者如果条件为“2”...

{
  "condition": "2",
  "two": "something",
  "misc": "abc"
}

但是依赖项部分似乎并没有像我希望的那样工作。因此,无论条件值如何,“一”和“二”都可以存在。

{
  "condition": "1",
  "one": 123,
  "two": "something",
  "misc": "abc"
}

如何更改 JSON 架构,以便根据“条件”仅可以使用相应的字段。

注意...顺序在提供的架构中确实很重要。请参阅https://rjsf-team.github.io/react-jsonschema-form/用于演示。

最佳答案

您必须使用oneOf运算符。 它需要多个依赖项,如果其中一个为真, json 有效。

示例:

"oneOf":[
    {
      "required": [
        "name",
        "dateOfBirth"
      ]
    },
    {
      "required": [
        "name",
        "age"
      ]
    }

更多示例可见here .

关于json - React JSON 架构依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60242933/

相关文章:

ruby-on-rails - authenticate_or_request_with_http_token 返回 html 而不是 json

json - 在spray json中只有case对象自定义实现的特征

json - 如何(反)序列化对象列表?

ruby-on-rails - 将数据从 JSON API 播种到 Ruby on Rails APP

Python jsonschema 不标记日期时间错误

java - 根据 swagger 文件验证 json 有效载荷 - json-schema-validator

java - Spring Data Rest - 自定义 Json 模式/阿尔卑斯山?

javascript - React-jsonschema-form 使用数据生成