How can I check in the following json that at least one element in the array names has a property nickName with the value Ginny?
I managed to figure it out using draft-06. On this version a new keyword contains was added. According to this draft specification:
contains
The value of this keyword MUST be a valid JSON Schema. An array instance is valid against "contains" if at least one of its elements is valid against the given schema.
Working schema:
{
"$schema": "http://json-schema.org/draft-06/schema#",
"title": "Complex Array",
"type": "object",
"properties": {
"names": {
"type": "array",
"minItems": 1,
"contains": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"nickName": {
"type": "string",
"pattern": "^Ginny$"
}
},
"required": ["nickName"]
},
"items": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"nickName": {
"type": "string"
}
}
}
}
}
}