1
0
mirror of https://github.com/httpie/cli.git synced 2026-06-20 11:32:56 +02:00
Files
httpie-cli/httpie/output/formatters/json.py
T

34 lines
884 B
Python
Raw Normal View History

2014-04-27 00:07:13 +02:00
from __future__ import absolute_import
import json
from httpie.plugins import FormatterPlugin
2014-04-27 00:07:13 +02:00
DEFAULT_INDENT = 4
2014-04-27 00:07:13 +02:00
class JSONFormatter(FormatterPlugin):
def format_body(self, body, mime):
maybe_json = [
'json',
'javascript',
'text',
]
2016-07-01 19:00:06 +02:00
if (self.kwargs['explicit_json'] or
any(token in mime for token in maybe_json)):
2014-04-27 00:07:13 +02:00
try:
obj = json.loads(body)
except ValueError:
pass # Invalid JSON, ignore.
2014-04-27 00:07:13 +02:00
else:
# Indent, sort keys by name, and avoid
# unicode escapes to improve readability.
body = json.dumps(
obj=obj,
sort_keys=True,
ensure_ascii=False,
indent=DEFAULT_INDENT
)
2014-04-27 00:07:13 +02:00
return body