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 ^^

8voto

slashmili Punkte 1100

Ich benutze httpie

$ pip install httpie

Und so können Sie es verwenden

 $ http PUT localhost:8001/api/v1/ports/my 
 HTTP/1.1 200 OK
 Connection: keep-alive
 Content-Length: 93
 Content-Type: application/json
 Date: Fri, 06 Mar 2015 02:46:41 GMT
 Server: nginx/1.4.6 (Ubuntu)
 X-Powered-By: HHVM/3.5.1

 {
     "data": [], 
     "message": "Failed to manage ports in 'my'. Request body is empty", 
     "success": false
 }

7voto

adius Punkte 11710

Für Node.js können Sie auch das Modul "util" verwenden. Es verwendet Syntax-Highlighting, intelligente Einrückung, entfernt Anführungszeichen von Schlüsseln und macht die Ausgabe einfach so hübsch wie möglich.

cat file.json | node -e "process.stdin.pipe(new require('stream').Writable({write: chunk =>  {console.log(require('util').inspect(JSON.parse(chunk), {depth: null, colors: true}))}}))"

6voto

josch Punkte 6178

Das Werkzeug ydump ist ein JSON-Pretty-Printer:

$ ydump my_data.json
{
  "foo": "lorem",
  "bar": "ipsum"
}

Oder Sie können das JSON über die Pipeline einfügen:

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

Dies ist wahrscheinlich die kürzeste Lösung, abgesehen von der Verwendung der jq Werkzeug.

Dieses Tool ist Teil des yojson Bibliothek für OCaml und ist dokumentiert aquí .

Unter Debian und Derivaten wird das Paket libyojson-ocaml-dev enthält dieses Werkzeug. Alternativ dazu, yojson kann installiert werden über OPAM .

5voto

Nikhil Ranjan Punkte 974

Wenn Sie Node.js installiert haben, können Sie es mit einer Zeile Code selbst erstellen. Erstellen Sie eine Datei pretty:

> vim hübsch

#!/usr/bin/env node

console.log(JSON.stringify(JSON.parse(process.argv[2]), null, 2));

Ausführungsberechtigung hinzufügen:

> chmod +x pretty

> ./pretty '{"foo": "lorem", "bar": "ipsum"}'

Oder wenn sich Ihr JSON in einer Datei befindet:

#!/usr/bin/env node

console.log(JSON.stringify(require("./" + process.argv[2]), null, 2));

> ./pretty file.json

1 Stimmen

Process.stdin.resume(); var input = ''; process.stdin.on('data', (data) => { input += data; }); process.stdin.on('end', () => { console.log(JSON.stringify(JSON.parse(input), null, 2)); });

5voto

Bryan Larsen Punkte 8886
$ sudo apt-get install edit-json
$ prettify_json myfile.json

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