We can enforce empty attribute of type object as follows:
{
"description": "voice mail record",
"type": "object",
"additionalProperties": false,
"properties": {}
}
as explained here.
Now I want to validate attribute which
- is of object type,
- dont have any predefined properties
- can have properties of type string or numeric
- should not be empty
Enforcing non-emptyness (point 4) is what I am unable to guess. This is somewhat opposite of enforcing emptyness as in above example. My current json schema excerpt looks like this:
"attribute":
{
"type": "object",
"additionalProperties": { "type": ["string","number","integer"] }
}
But above does not enforce non-emptyness. How can I accomplish this?
Sounds like minProperties
is what you want.
{
"type": "object",
"additionalProperties": {"type": ["string", "number", "integer"]},
"minProperties": 1
}
There is also maxProperties
, which can be used as an alternative solution to the opposite question that you linked to.
来源:https://stackoverflow.com/questions/35651589/enforce-object-non-emptyness-using-json-schema