Skip to content

Latest commit

 

History

History
77 lines (58 loc) · 2.41 KB

File metadata and controls

77 lines (58 loc) · 2.41 KB

Validator class

.. currentmodule:: rapidjson

.. testsetup::

   from rapidjson import ValidationError, Validator

param json_schema:the JSON schema, specified as a str instance or an UTF-8 bytes instance
raises JSONDecodeError:if json_schema is not a valid JSON value
.. method:: __call__(json)

   :param json: the ``JSON`` value, specified as a ``str`` instance or an *UTF-8*
                ``bytes`` instance, that will be validated
   :raises JSONDecodeError: if `json` is not a valid ``JSON`` value

   The given `json` value will be validated accordingly to the *schema*: a
   :exc:`ValidationError` will be raised if the validation fails, and the exception
   will contain three arguments, respectively the type of the error, the position in
   the schema and the position in the ``JSON`` document where the error occurred:

   .. doctest::

      >>> validate = Validator('{"required": ["a", "b"]}')
      >>> validate('{"a": null, "b": 1}')
      >>> try:
      ...   validate('{"a": null, "c": false}')
      ... except ValidationError as error:
      ...   print(error.args)
      ...
      ('required', '#', '#')

   .. doctest::

      >>> validate = Validator('{"type": "array",'
      ...                      ' "items": {"type": "string"},'
      ...                      ' "minItems": 1}')
      >>> validate('["foo", "bar"]')
      >>> try:
      ...   validate('[]')
      ... except ValidationError as error:
      ...   print(error.args)
      ...
      ('minItems', '#', '#')

   .. doctest::

      >>> try:
      ...   validate('[1]')
      ... except ValidationError as error:
      ...   print(error.args)
      ...
      ('type', '#/items', '#/0')

   When `json` is not a valid JSON document, a :exc:`JSONDecodeError` is raised instead:

   .. doctest::

      >>> validate('x')
      Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
      rapidjson.JSONDecodeError: Invalid JSON