[extensions-web] decorators: Add a way to pretty-print JSON



commit a86789998e3267ac9c7fd9ee916eedd5670f65f7
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Tue Dec 4 15:37:25 2012 -0500

    decorators: Add a way to pretty-print JSON

 sweettooth/decorators.py |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)
---
diff --git a/sweettooth/decorators.py b/sweettooth/decorators.py
index 339bd71..61b9bcc 100644
--- a/sweettooth/decorators.py
+++ b/sweettooth/decorators.py
@@ -15,14 +15,22 @@ def model_view(model):
         return new_view
     return inner
 
+def dump_json(response, pretty=False):
+    if pretty:
+        return json.dumps(response, indent=2, sort_keys=True)
+    else:
+        return json.dumps(response)
+
 def ajax_view(view):
     @functools.wraps(view)
     def new_view(request, **kw):
+        pretty = request.GET.get('pretty', False)
+
         response = view(request, **kw)
         if response is None:
             return HttpResponse()
         if not isinstance(response, HttpResponse):
-            response = HttpResponse(mark_safe(json.dumps(response)),
+            response = HttpResponse(mark_safe(dump_json(response, pretty)),
                                     content_type="application/json")
         return response
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]