cherrypy.lib.jsontools module¶
JSON tools.
- cherrypy.lib.jsontools.json_handler(*args, **kwargs)[source]¶
Convert decorated HTTP handler-returned object to JSON string.
- cherrypy.lib.jsontools.json_in(content_type=['application/json', 'text/javascript'], force=True, debug=False, processor=<function json_processor>)[source]¶
Add a processor to parse JSON request entities.
The default processor places the parsed data into request.json.
Incoming request entities which match the given content_type(s) will be deserialized from JSON to the Python equivalent, and the result stored at cherrypy.request.json. The ‘content_type’ argument may be a Content-Type string or a list of allowable Content-Type strings.
If the ‘force’ argument is True (the default), then entities of other content types will not be allowed; “415 Unsupported Media Type” is raised instead.
Supply your own processor to use a custom decoder, or to handle the parsed data differently. The processor can be configured via tools.json_in.processor or via the decorator method.
Note that the deserializer requires the client send a Content-Length request header, or it will raise “411 Length Required”. If for any other reason the request entity cannot be deserialized from JSON, it will raise “400 Bad Request: Invalid JSON document”.
- cherrypy.lib.jsontools.json_out(content_type='application/json', debug=False, handler=<function json_handler>)[source]¶
Wrap request.handler to serialize its output to JSON. Sets Content-Type.
If the given content_type is None, the Content-Type response header is not set.
Provide your own handler to use a custom encoder. For example cherrypy.config[‘tools.json_out.handler’] = <function>, or @json_out(handler=function).