如何使用JSON模式需要两个字段中的一个

如何使用JSON模式需要两个字段中的一个,json,jsonschema,json-schema-validator,Json,Jsonschema,Json Schema Validator,我想验证JSON,使两个字段中的一个成为管理字段 假设我们有两个字段(电子邮件地址和电话号码)。我想确保这两个字段中的一个是记录有效所必需的 { "$schema": "http://json-schema.org/draft-04/schema#", "id": "ExampleID-0212", "title": "objectExamples", "description": "Demo", "type": "object", "properties": {

我想验证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"
  ]
}
您需要添加:

"anyOf": [
  { "required":
    [ "emailAddress" ] },
  { "required":
    [ "PhoneNumber" ] }
]
到RecordObject属性的架构

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


可能有用。

请尽快回答ESP。。这是来自jsonSchema

您也可以在任何条件下进行验证。请参见下文

 if(EmailAddress == null && PhoneNumber == null){
     //statements or error message response
}
答案中的链接已失效-“404 |文件未找到”。我已将链接更新为