Validator class¶
- class rapidjson.Validator(json_schema)¶
- Parameters:
json_schema – the JSON schema, specified as a
str
instance or an UTF-8bytes
/bytearray
instance- Raises:
JSONDecodeError – if json_schema is not a valid
JSON
value
- __call__(json)¶
- Parameters:
json – the
JSON
value, specified as astr
instance or an UTF-8bytes
/bytearray
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
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 theJSON
document where the error occurred:>>> validate = Validator('{"required": ["a", "b"]}') >>> validate('{"a": null, "b": 1}') >>> try: ... validate('{"a": null, "c": false}') ... except ValidationError as error: ... print(error.args) ... ('required', '#', '#')
>>> validate = Validator('{"type": "array",' ... ' "items": {"type": "string"},' ... ' "minItems": 1}') >>> validate('["foo", "bar"]') >>> try: ... validate('[]') ... except ValidationError as error: ... print(error.args) ... ('minItems', '#', '#')
>>> try: ... validate('[1]') ... except ValidationError as error: ... print(error.args) ... ('type', '#/items', '#/0')
When json is not a valid JSON document, a
JSONDecodeError
is raised instead:>>> validate('x') Traceback (most recent call last): File "<stdin>", line 1, in <module> rapidjson.JSONDecodeError: Invalid JSON