# Method Standards.JSON.Validator()->validate_object()

Method validate_object

  `private string validate_object(string key, mixed value, mapping(string:mixed) schema)`

Description

  Verify that the specified `value` is an object according to the specified `schema`. The following properties of `schema` are verified:

  minProperties

    If `schema` has the property `"minProperties"`, then the object must have at least the specified number of properties.

  maxProperties

    If `schema` has the property `"maxProperties"`, then the object must not have more than the specified number of items.

  required

    If `schema` has the property `"required"`, which is an array of strings, then the object must have all properties that are listed in the specified array.

  properties

    If `schema` has the property `"properties"`, which is a mapping of property-name to a schema, then each property of the object that has a corresponding schema in `"properties"` must be valid according to that schema.

  patternProperties

    If `schema` has the property `"properties"`, which is a mapping of property-name-pattern to a schema, then each property of the object must be valid according to all schema objects for which the pattern matches the property-name.

  additionalProperties

    If `schema` has the property `"additionalProperties"`, it can be either a boolean value, or a schema.

    - If it is a boolean with value Standards.JSON.false, then all properties of the object must be validated either by a schema from `"properties"` or `"patternProperties"`.

    - If it is a boolean with value Standards.JSON.true, then the object is allowed to have additional properties without validation.

    - If it is a schema, then any propery of the object that is not validated by a schema from `"properties"` or `"patternProperties"` must be validated by the specified schema.

Note

  TODO: We use Regexp.SimpleRegexp to handle `schema->patternProperties`, but that covers only some part of the possible regular expressions.