3647 Stimmen

Wie kann ich JSON in einem Shell-Skript hübsch ausdrucken?

Gibt es ein (Unix-)Shell-Skript zur Formatierung von JSON in menschenlesbarer Form?

Im Grunde genommen möchte ich, dass es das Folgende umwandelt:

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

... zu etwas wie diesem:

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

0 Stimmen

10 Stimmen

Ich habe vor einiger Zeit meine eigenen gedreht: github.com/exhuma/braindump/tree/master/jsonformat Der Code ist sehr einfach und verwendet Python's eigene json Bibliothek, aber ich habe auch pygments hinzugefügt, um eine Syntaxhervorhebung zu erhalten.

0 Stimmen

Ich bin über diese Seite gestolpert und habe dann Folgendes gefunden Json Hübsch und ich mag es sehr. Typekit verwendet es in ihren API-Beispielen, so gibt es einige klout hinter ihm ^^

25voto

Philip Durbin Punkte 3992

Mit Perl, wenn Sie JSON::PP von CPAN erhalten Sie die json_pp Befehl. Das Stehlen der ejemplo von B Bycroft erhalten Sie:

[pdurbin@beamish ~]$ echo '{"foo": "lorem", "bar": "ipsum"}' | json_pp
{
   "bar" : "ipsum",
   "foo" : "lorem"
}

Es ist erwähnenswert, dass json_pp wird vorinstalliert mit Ubuntu 12.04 (mindestens) und Debian in /usr/bin/json_pp

20voto

peak Punkte 86238

jj ist superschnell, kann mit riesigen JSON-Dokumenten sparsam umgehen, kommt nicht mit gültigen JSON-Zahlen durcheinander und ist einfach zu verwenden, z. B.

jj -p # for reading from STDIN

ou

jj -p -i input.json

Es ist (2018) noch recht neu, so dass es vielleicht nicht mit ungültigem JSON so umgehen kann, wie Sie es erwarten, aber es ist einfach auf den wichtigsten Plattformen zu installieren.

20voto

htaccess Punkte 2144

Ich empfehle die Verwendung des json_xs Kommandozeilenprogramms, das im JSON::XS Perl-Modul enthalten ist. JSON::XS ist ein Perl-Modul zur Serialisierung/Deserialisierung von JSON. Auf einem Debian- oder Ubuntu-Rechner können Sie es wie folgt installieren:

sudo apt-get install libjson-xs-perl

Sie ist natürlich auch verfügbar auf CPAN .

Um JSON von einer URL zu formatieren, können Sie curl oder wget wie folgt verwenden:

$ curl -s http://page.that.serves.json.com/json/ | json_xs

oder dies:

$ wget -q -O - http://page.that.serves.json.com/json/ | json_xs

und um JSON in einer Datei zu formatieren, können Sie dies tun:

$ json_xs < file-full-of.json

Umformatieren als YAML die manche Leute für besser lesbar halten als JSON:

$ json_xs -t yaml < file-full-of.json

17voto

Installieren Sie yajl-tools mit dem folgenden Befehl:

sudo apt-get install yajl-tools

dann,

echo '{"foo": "lorem", "bar": "ipsum"}' | json_reformat

0 Stimmen

Fantastisch. Benötigt keine andere Sprache/Interpreter und ist in den Paket-Repos, keine Notwendigkeit zu brauen!

17voto

Grav Punkte 1716

bat es un cat Klon mit Syntaxhervorhebung:

echo '{"bignum":1e1000}' | bat -p -l json

-p wird ohne Kopfzeilen ausgegeben, und -l wird die Sprache explizit angegeben.

Es hat Farbgebung und Formatierung für JSON und tut no haben die in diesem Kommentar genannten Probleme: _Wie kann ich JSON in einem Shell-Skript hübsch ausdrucken?_

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X