Kann jemand einen Unix-JSON-Parser (wählen Sie Ihren Geschmack) empfehlen, mit dem Werte aus einer JSON-Antwort in einer Pipeline überprüft werden können?
json
parsing
unix
configuration
Jé Queue
quelle
quelle
npm install -g ramda-cli
Antworten:
Sie können diesen Befehlszeilenparser (den Sie bei Bedarf in einen Bash-Alias einfügen können) verwenden, indem Sie Module verwenden, die in den Perl-Kern integriert sind:
quelle
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
Ich bevorzuge,
python -m json.tool
welche standardmäßig auf den meisten * nix-Betriebssystemen standardmäßig verfügbar zu sein scheint.Es sollte jedoch beachtet werden, dass dadurch alle Schlüssel alphabetisch sortiert werden. Dies ist oder kann eine gute Sache sein, wenn der JSON von einer Sprache generiert wurde, die ungeordnete HashMaps verwendet ...
quelle
json.tool
ist nur eine kurze Hand zu hübschem Druck json. Wenn Sie json-Daten in einem Shell-Skript extrahieren / manipulieren müssen, würde ich verwenden,jq
was bei dem, was es tut,json.tool
zehnmal täglich. Ich glaube, ich habe die Bedeutung von "introspec" in der Frage falsch verstanden, danke für Ihren Hinweis.json.tool
nur zwei Dinge tut: validieren und hübsch drucken json. Es werden KEINE Werte im json überprüft, wie dies derjq
Fall ist.Wenn Sie nach einem tragbaren C-kompilierten Tool suchen:
http://stedolan.github.com/jq/
Von der Website:
Tutorial : http://stedolan.github.com/jq/tutorial/
Handbuch : http://stedolan.github.com/jq/manual/
Download : http://stedolan.github.com/jq/download/
quelle
apt install jq
.jq
.Ich habe ein Modul erstellt, das speziell für die Befehlszeilen-JSON-Manipulation entwickelt wurde:
https://github.com/ddopson/underscore-cli
Es ermöglicht Ihnen, mächtige Dinge wirklich einfach zu tun:
Und es hat einen der besten verfügbaren "Smart-Whitespace" -JSON-Formatierer:
Wenn Sie Funktionswünsche haben, kommentieren Sie diesen Beitrag oder fügen Sie ein Problem in github hinzu. Ich würde gerne Funktionen priorisieren, die von Mitgliedern der Community benötigt werden.
quelle
wget
jede URL angegeben.underscore
verschachtelte JSON mit verschachtelten Objekten und Arrays analysieren?Kasse TickTick .
Es ist ein echter Bash JSON-Parser.
quelle
Es gibt auch ein JSON-Toolkit zur Befehlszeilenverarbeitung für die wenn Sie zufällig node.js und npm in Ihrem Stapel haben.
Und ein weiterer "json" -Befehl zum Massieren von JSON in Ihrer Unix-Befehlszeile.
Und hier sind die anderen Alternativen:
Verwandte: Befehlszeilentool zum Parsen von JSON-Eingaben für Unix?
quelle
npm install json
.json
scheint das NPM- Paket jetzt von einem völlig anderen Paket übernommen zu werden.Hat jemand Jshon oder JSON.sh erwähnt?
https://github.com/keenerd/jshon
Pipe Json dorthin, und es durchläuft die JSON-Objekte und druckt den Pfad zum aktuellen Objekt (als JSON-Array) und dann zum Objekt ohne Leerzeichen aus.
http://kmkeen.com/jshon/
Jshon lädt json-Text von stdin, führt Aktionen aus, zeigt dann die letzte Aktion auf stdout an und wurde als Teil der üblichen Textverarbeitungspipeline festgelegt.
quelle
brew install jshon
,cat *.json | jshon
Sie können jsawk wie in dieser Antwort vorgeschlagen ausprobieren .
Wirklich, Sie könnten ein schnelles Python-Skript erstellen, um dies zu tun.
quelle
Für Bash / Python gibt es hier einen grundlegenden Wrapper für Pythons
simplejson
:Es behandelt wirklich nur den verschachtelten Wörterbuchstil von Daten, aber es funktioniert für das, was ich brauchte, und ist nützlich, um durch den JSON zu gehen. Es könnte wahrscheinlich nach Geschmack angepasst werden.
Wie auch immer, etwas Eigenes für diejenigen, die keine weitere externe Abhängigkeit herstellen möchten. Außer natürlich Python.
Ex.
json_parser {field1} {field2}
würde laufenprint myjson['{field1}']['{field2}']
und entweder die Schlüssel oder die damit verbundenen Werte durch{field2}
Leerzeichen trennen.quelle
Ich habe gerade jkid erstellt , einen kleinen Befehlszeilen- JSON -Explorer, den ich erstellt habe, um große JSON-Objekte einfach zu erkunden. Objekte können "quer" untersucht werden, und eine "Vorschau" -Option dient dazu, einen Konsolenüberlauf zu vermeiden.
quelle
jkid
in Mac installieren ?