Httpie: 漂亮的打印 JSON 正文

创建于 2015-11-13  ·  6评论  ·  资料来源: httpie/httpie

如何漂亮地打印 JSON 输出正文以便在 bash 控制台中对其进行格式化

macbookproloreto:~ admin$ echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
{
    "bar": "ipsum",
    "foo": "lorem"
}

我的命令现在看起来像

http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://myapi.company.com | python -m json.tool

选项--pretty旨在漂亮地打印输出正文? 让它似乎不会美化输出正文,而是将 json 打印为纯文本

'{"foo": "lorem", "bar": "ipsum"}'

最有用的评论

@jkbrzt完全正确。 事实上,问题在于服务器标头是text/plain而正文是格式为 json 正文(格式良好的 json)的文本。 基本上响应头Content-Type不是application/jsonHTTPie在这些情况下可以强制 json 格式吗?

所有6条评论

这是开箱即用的:

screen shot 2016-01-01 at 6 58 34 pm

@jkbrzt是的,但这不是响应body 。 似乎它的身体并不漂亮,而只有headers

@loretoparisi它是响应正文,请参阅http://httpbin.org/get

好的,我找到了问题,响应标头中有问题。 事实上,如果我尝试使用 json 格式的格式良好的响应正文,例如:

http --session=cookies.txt --pretty all --json --print=b --style=xcode "https://api.spotify.com/v1/tracks/0eGsygTp906u18L0Oimnem"

有用。
当 http 响应标头为text/plain

HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 1996
Content-Type: text/plain; charset=utf-8

生成的格式很简单。

HTTPie 查看响应Content-Type标头。 如果它是text/plain ,那么它不会做任何特殊的格式化。 您提供的 URL 返回Content-Type: application/json; charset=utf-8因此它的格式正确并突出显示为 JSON。

screen shot 2016-01-03 at 6 58 33 pm

@jkbrzt完全正确。 事实上,问题在于服务器标头是text/plain而正文是格式为 json 正文(格式良好的 json)的文本。 基本上响应头Content-Type不是application/jsonHTTPie在这些情况下可以强制 json 格式吗?

此页面是否有帮助?
0 / 5 - 0 等级