如何使用 JSON Schema 来要求两个字段之一

问题描述 投票:0回答:1

我想验证 JSON 以使两个字段之一成为必填字段。

假设我们有两个字段(电子邮件地址和电话号码)。我想确保记录有效需要两个字段之一。

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "id": "ExampleID-0212",
  "title": "objectExamples",
  "description": "Demo",
  "type": "object",
  "properties": {
    "RecordObject": {
      "type": "object",
      "properties": {
        "emailAddress": {
          "type": "string"
        },
        "PhoneNumber": {
          "type": "number"
        }
      }
    }
  },
  "required": [
    "RecordObject"
  ]
}
json jsonschema json-schema-validator
1个回答
49
投票

您需要添加:

"anyOf": [
  { "required":
    [ "emailAddress" ] },
  { "required":
    [ "PhoneNumber" ] }
]

RecordObject 属性的架构。

要求至少存在一个字段。如果您只需要一个字段(即不是两个字段),则需要使用“oneOf”关键字(其余字段应该相同)。

JSON 架构组合关键字的参考可能很有用。

© www.soinside.com 2019 - 2024. All rights reserved.