Package cherrypy :: Package lib :: Module jsontools
[hide private]
[frames] | no frames]

Module jsontools

source code

Functions [hide private]
 
json_processor(entity)
Read application/json data into request.json.
source code
 
json_in(content_type=[u'application/json', u'text/javascript'], force=True, debug=False, processor=<function json_processor at 0xa5e54c4>)
Add a processor to parse JSON request entities: The default processor places the parsed data into request.json.
source code
 
json_handler(*args, **kwargs) source code
 
json_out(content_type='application/json', debug=False, handler=<function json_handler at 0xa5e564c>)
Wrap request.handler to serialize its output to JSON.
source code
Variables [hide private]
  __package__ = 'cherrypy.lib'
Function Details [hide private]

json_in(content_type=[u'application/json', u'text/javascript'], force=True, debug=False, processor=<function json_processor at 0xa5e54c4>)

source code 

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".

You must be using Python 2.6 or greater, or have the 'simplejson' package importable; otherwise, ValueError is raised during processing.

json_out(content_type='application/json', debug=False, handler=<function json_handler at 0xa5e564c>)

source code 

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).

You must be using Python 2.6 or greater, or have the 'simplejson' package importable; otherwise, ValueError is raised during processing.