I would like to know if I can define a JSON schema (draft 4) that requires at least one of many properties possible for an object. I already know of allOf
,
To require at least one of a set of properties, use required
inside a series of anyOf
options:
{
"type": "object",
"anyOf": [
{"required": ["id"]},
{"required": ["email"]}
// any other properties, in a similar way
],
"properties": {
// Your actual property definitions here
}
{
If any of the properties you want is present ("id"
, "email"
), then it will pass the corresponding option in allOf
.