Httpie: プリティプリントJSON本文

作成日 2015年11月13日  ·  6コメント  ·  ソース: httpie/httpie

次のようなbashコンソールでフォーマットするためにJSON出力本文をきれいに印刷する方法

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-Typeapplication/jsonはありません。 そのような場合、 HTTPie jsonフォーマットを強制できますか?

全てのコメント6件

これは箱から出して動作します:

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

@jkbrztはい、しかしこれは応答bodyはありません。 体がきれいではなく、 headersです。

@loretoparisiこれは応答本文ですください。

問題が見つかりました。応答ヘッダーに問題があります。 実際、次のような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-Typeapplication/jsonはありません。 そのような場合、 HTTPie jsonフォーマットを強制できますか?

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

zapman449 picture zapman449  ·  15コメント

vfaronov picture vfaronov  ·  8コメント

whodidthis picture whodidthis  ·  24コメント

papachoco picture papachoco  ·  11コメント

winneon picture winneon  ·  9コメント