web-dev-qa-db-ja.com

JSONスキーマを使用して2つのフィールドのいずれかを要求する方法

JSONを検証して、2つのフィールドのいずれかを必須にします。

2つのフィールド(メールアドレスと電話番号)があるとしましょう。レコードを有効にするには、2つのフィールドのいずれかが必須であることを確認したいと思います。

{
  "$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"
  ]
}
16
Abhi

追加する必要があります:

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

recordObjectプロパティのスキーマに。

少なくとも1つのフィールドが存在する必要があります。正確に1つのフィールド(両方ではない)が必要な場合は、「oneOf」キーワードを使用する必要があります(残りは同じである必要があります)。

このJSONスキーマキーワードの参照 は便利です。

10
esp