2016-07-28 13 views
0

Wie der jq '.' Parsen der JSON und Anzeigen?Was macht jq '.' machen?

curl 'https://api.github.com/repos/stedolan/jq/commits?per_page=5' | jq '.' 

Ich sehe die json analysiert und diplayed richtig

Was die Umsetzung hinter "xxxx | '' JQ "

Wie kann ich das verstehen?

Antwort

3

Von the documentation:

.

Die absolute einfachste (und am wenigsten interessant) Filter ist .. Dies ist ein Filter, der seine Eingabe nimmt und sie unverändert als Ausgabe erzeugt.

Seit jq standardmäßig pretty-druckt alle Ausgabe, dieses triviale Programm kann eine nützliche Möglichkeit zum Formatieren von JSON-Ausgabe von, sagen wir curl.

+0

Zum besseren oder schlechteren, analysiert jq zuerst den JSON und pretty-druckt die geparste Version. Dies bedeutet insbesondere, dass die anfängliche Darstellung von Zahlen verloren geht. – peak

+0

@peak: Was meinst du mit "die anfängliche Darstellung von Zahlen"? –

+0

Die Eingabe-Darstellung. Überlegen Sie, was passiert, zum Beispiel mit 1.0e1000 – peak

2

In der Programmiersprache jq bezieht sich . auf die implizite Eingabe eines Filters. Zum Beispiel definiert def f: .; eine Funktion f, die ihren impliziten Eingang unverändert ausgibt.

Beachten Sie, dass innerhalb von Filterargumenten der Filter ändern kann, was sich . bezieht: z. B. map(f) ist definiert als [.[] | f]; auf dem jq-Programm [1, 2, 3] | map(. + 1) bezieht sich . auf jedes der Elemente des Arrays.

0

Zusätzlich zu jq . Pretty-Drucken der Ausgabe, erzeugt es auch eine Warnung, wenn die Eingabedatei nicht analysiert werden kann. Daher ist es praktisch, unbekannte JSON-Dateien zu testen, um festzustellen, ob die Quelldatei Syntaxprobleme hat.