Httpie: Hübscher Print JSON Body

Erstellt am 13. Nov. 2015  ·  6Kommentare  ·  Quelle: httpie/httpie

So drucken Sie einen JSON-Ausgabetext hübsch aus, um ihn in der Bash-Konsole zu formatieren wie

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

Mein Befehl sieht jetzt so aus

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

Zielt die Option --pretty darauf ab, den Ausgabekörper hübsch zu drucken? Es scheint den Ausgabetext nicht zu verschönern, stattdessen wird das Json als Klartext ausgegeben

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

Hilfreichster Kommentar

@jkbrzt genau. Tatsächlich bestand das Problem darin, dass die Serverheader text/plain lauteten, während der Text ein als Json-Body formatierter Text (gut formatierter Json) war. Grundsätzlich ist der Antwortheader Content-Type nicht application/json . Kann HTTPie in diesen Fällen die Json-Formatierung erzwingen?

Alle 6 Kommentare

Das funktioniert out-of-the-box:

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

@jkbrzt ja, aber das ist nicht die Antwort body . Es scheint, dass es nicht den Körper hübsch macht, sondern nur das headers .

@loretoparisi ist der Antworttext, siehe http://httpbin.org/get

Ok, ich habe das Problem gefunden, es stimmt etwas in den Antwortheadern nicht. Tatsächlich, wenn ich einen gut formatierten Antworttext mit Json-Format wie folgt versuche:

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

Es klappt.
Wenn die HTTP-Antwortheader text/plain

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

Die resultierende Formatierung ist schlicht.

HTTPie betrachtet den Header der Antwort Content-Type . Wenn es text/plain , führt es keine spezielle Formatierung durch. Die von Ihnen angegebene URL gibt Content-Type: application/json; charset=utf-8 sodass sie richtig formatiert und als JSON hervorgehoben wird.

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

@jkbrzt genau. Tatsächlich bestand das Problem darin, dass die Serverheader text/plain lauteten, während der Text ein als Json-Body formatierter Text (gut formatierter Json) war. Grundsätzlich ist der Antwortheader Content-Type nicht application/json . Kann HTTPie in diesen Fällen die Json-Formatierung erzwingen?

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen