diff --git a/gluon/globals.py b/gluon/globals.py index 25727560..2cd7ddcf 100644 --- a/gluon/globals.py +++ b/gluon/globals.py @@ -644,10 +644,10 @@ class Response(Storage): 'attachment; filename="%s"' % download_filename.replace('"', '\"') return self.stream(stream, chunk_size=chunk_size, request=request) - def json(self, data, default=None): + def json(self, data, default=None, indent=None): if 'Content-Type' not in self.headers: self.headers['Content-Type'] = 'application/json' - return json(data, default=default or custom_json) + return json(data, default=default or custom_json, indent=indent) def xmlrpc(self, request, methods): from gluon.xmlrpc import handler diff --git a/gluon/packages/dal b/gluon/packages/dal index dbcb240f..0a700393 160000 --- a/gluon/packages/dal +++ b/gluon/packages/dal @@ -1 +1 @@ -Subproject commit dbcb240fe5be53ddaf9b5e935caeb8b5718ad90c +Subproject commit 0a700393ab7d480000e2b489b4b1dc7e2a57fd06 diff --git a/gluon/serializers.py b/gluon/serializers.py index 559eb725..d53740d7 100644 --- a/gluon/serializers.py +++ b/gluon/serializers.py @@ -119,8 +119,8 @@ def xml(value, encoding='UTF-8', key='document', quote=True): return ('' % encoding) + str(xml_rec(value, key, quote)) -def json(value, default=custom_json): - value = json_parser.dumps(value, default=default) +def json(value, default=custom_json, indent=None): + value = json_parser.dumps(value, default=default, sort_keys=True, indent=indent) # replace JavaScript incompatible spacing # http://timelessrepo.com/json-isnt-a-javascript-subset # PY3 FIXME