From 8bd500391ba6e90a0e3657dd189b087be9c4fa03 Mon Sep 17 00:00:00 2001 From: hubbyist Date: Mon, 12 Jan 2015 18:06:14 +0200 Subject: [PATCH] use OrderedDict for json formating to preserve key ordering passing collections.OrderedDict to "object_pairs_hook" option of json.load function and making "sort_keys" option in json.dumps function False --- httpie/output/formatters/json.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/httpie/output/formatters/json.py b/httpie/output/formatters/json.py index 292cc142b8..a0c8041deb 100644 --- a/httpie/output/formatters/json.py +++ b/httpie/output/formatters/json.py @@ -1,5 +1,6 @@ from __future__ import absolute_import import json +import collections from httpie.plugins import FormatterPlugin @@ -12,7 +13,7 @@ class JSONFormatter(FormatterPlugin): def format_body(self, body, mime): if 'json' in mime: try: - obj = json.loads(body) + obj = json.loads(body, object_pairs_hook=collections.OrderedDict) except ValueError: # Invalid JSON, ignore. pass @@ -20,7 +21,7 @@ def format_body(self, body, mime): # Indent, sort keys by name, and avoid # unicode escapes to improve readability. body = json.dumps(obj, - sort_keys=True, + sort_keys=False, ensure_ascii=False, indent=DEFAULT_INDENT) return body