1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 r"""Support for converting responses to JSON formats.
21
22 """
23 __docformat__ = "restructuredtext en"
24
25 have_json = False
26 try:
27
28 import json
29 if hasattr(json, 'dumps'):
30 have_json = True
31 else:
32 del json
33 except ImportError:
34 pass
35 if not have_json:
36 import simplejson as json
37
38 from application import JsonResponse
39 from wsgisupport import Response
40
42 """Convert a response to JSON.
43
44 """
45 jsonobj = response
46 status = 200
47 content_type="text/javascript"
48
49 if isinstance(response, JsonResponse):
50 jsonobj = response.jsonobj
51 if response.status_code is not None:
52 status = response.status_code
53 if response.content_type is not None:
54 content_type = response.content_type
55
56 return Response(json.dumps(jsonobj), status, content_type)
57
59 """Convert a response to JSONP, according to the props.
60
61 """
62 response = convert_to_json(request, response, props)
63
64 paramname = props['return_JSONP_paramname']
65 jsonp = request.validated.get(paramname)
66 if jsonp != '':
67 response.body = jsonp + '(' + response.body + ')'
68 return response
69
70 -def parse_json_body(request):
71 """Parse json in a request body.
72
73 """
74 request.json = json.loads(request.raw_post_data)
75
76
77