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   
41 -def convert_to_json(request, response, props, 
42                      content_type="application/json"): 
 43      """Convert a response to JSON. 
44   
45      The supplied content type will be overridden by any type set in the 
46      response object. 
47   
48      """ 
49      jsonobj = response 
50      status = 200 
51   
52      if isinstance(response, JsonResponse): 
53          jsonobj = response.jsonobj 
54          if response.status_code is not None: 
55              status = response.status_code 
56          if response.content_type is not None: 
57              content_type = response.content_type 
58   
59      return Response(json.dumps(jsonobj), status, content_type) 
 60   
62      """Convert a response to JSONP, according to the props. 
63   
64      """ 
65       
66       
67       
68      response = convert_to_json(request, response, props, 
69                                 content_type='text/javacsript') 
70   
71      paramname = props['return_JSONP_paramname'] 
72      jsonp = request.validated.get(paramname) 
73      if jsonp != '': 
74          response.body = jsonp + '(' + response.body + ')' 
75      return response 
 76   
77 -def parse_json_body(request): 
 78      """Parse json in a request body. 
79   
80      """ 
81      request.json = json.loads(request.raw_post_data) 
 82   
83   
84