EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

jshon – Online in der Cloud

Führen Sie jshon im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl jshon, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


jshon – JSON-Parser für die Shell

ZUSAMMENFASSUNG


jshon -[P|S|Q|V|C|I|0] [-F Pfad] -[t|l|k|u|p|a] -[s|n] Wert -[e|i|d] Index

BESCHREIBUNG


jshon analysiert, liest und erstellt JSON. Es ist so konzipiert, dass es so benutzerfreundlich wie möglich ist
innerhalb der Shell und ersetzt fragile Ad-hoc-Parser aus grep/sed/awk sowie
Schwergewichtige einzeilige Parser aus Perl/Python.

jshon Lädt JSON-Text von stdin, führt Aktionen aus und zeigt dann die letzte Aktion auf stdout an.
Einige der Optionen geben JSON aus, andere geben Zusammenfassungen im Klartext aus. Denn Bash hat sehr
schlecht verschachtelte Datenstrukturen, jshon gibt den JSON nicht als natives Objekt als Typisch zurück
Bibliothek würde. Stattdessen jshon Behält einen Verlauf der Bearbeitungen in einem Stapel bei und Sie bearbeiten ihn
oberstes JSON-Element.

MASSNAHMEN


Jede Aktion hat die Form einer kurzen Option. Einige erfordern Argumente. Während viele Fälle
of jshon können durcheinander geleitet werden, Aktionen sollten zur Reduzierung nacheinander verkettet werden
Anrufe. Alle Beispiele verwenden dieses JSON-Beispiel:

{"a":1,"b":[true,false,null,"str"],"c":{"d":4,"e":5}}
jshon [Aktionen] <sample.json

Für die häufigsten schreibgeschützten Verwendungen sind nur mehrere erforderlich -e Aktionen und eins -a inmitten
Them.

-t (Typ) gibt String, Objekt, Array, Zahl, Bool, Null zurück

jshon -t -> Objekt

-l (Länge) gibt eine Ganzzahl zurück. Funktioniert nur für Zeichenfolgen, Objekte und Arrays.

jshon -l -> 3

-k (keys) gibt eine durch Zeilenumbrüche getrennte Liste von Schlüsseln zurück. Funktioniert nur bei Objekten.

jshon -k -> abc

-e Index
(Extrakt) gibt den JSON-Wert bei „index“ zurück. Funktioniert nur für Objekte und Arrays. Der Index eines
Array ist eine Ganzzahl.

jshon -ec -> {"d":4,"e":5}

-a (across) ordnet die verbleibenden Aktionen dem ausgewählten Element zu. Funktioniert nur bei Objekten
und Arrays. Mehrere -a Aufrufe können verschachtelt werden, obwohl dies in der Praxis selten erforderlich ist.

jshon -eb -a -t -> bool bool null string

-s Wert
(string) gibt einen JSON-codierten String zurück. Kann später in eine bestehende eingefügt werden
Struktur.

jshon -s "back\slash" -> "back\\slash"

-n Wert
(nonstring/number) gibt ein JSON-Element zurück. Kann später in eine bestehende eingefügt werden
Struktur. Gültige Werte sind „true“, „false“, „null“, „array“, „object“, ganze Zahlen und
schwimmt. Die Abkürzungen t, f, n, [] und {} funktionieren ebenfalls.

jshon -n Objekt -> {}

-u (unstring) gibt einen dekodierten String zurück. Funktioniert nur bei einfachen Typen: string, int, real,
boolesch, null.

jshon -eb -e 3 -u -> str

-p (pop) entfernt die letzte Manipulation vom Stapel und spult den Verlauf zurück. Nützlich zum
Extrahieren mehrerer Werte aus einem Objekt.

jshon -ec -ed -u -p -ee -u -> 4 5

-d Index
(löschen) entfernt ein Element in einem Array oder Objekt. Negative Array-Indizes werden umbrochen
um.

jshon -db -> {"a":1,"c":{"d":4,"e":5}}

-i Index
(einfügen) ist kompliziert. Es ist das Gegenteil von Extrakt. Extract fügt ein JSON-Unterelement ein
auf dem Stapel. „Insert“ entfernt ein Unterelement aus dem Stapel und fügt dieses JSON-Bit ein
in das größere Array/Objekt darunter. Verwenden Sie Extract, um in den JSON-Baum einzutauchen.
delete/string/nonstring, um Dinge zu ändern, und insert, um die Änderungen zurück in die Datei zu übertragen
Baum.

jshon -ea -ia -> der ursprüngliche JSON
jshon -s one -ia -> {"a": "one", ...}

Arrays werden auf besondere Weise behandelt. Durch die Übergabe von Ganzzahlen wird ein Wert ohne eingefügt
Überschreiben. Negative ganze Zahlen sind zulässig, ebenso wie die Zeichenfolge „append“. Zum Überschreiben
ein Wert in einem Array: Index löschen, -n/s Geben Sie den neuen Wert ein und fügen Sie ihn dann am Index ein.

jshon -eb -d 0 -sq -i 0 -> {"b":"q",false,null,"str"}

NICHT-MANIPULATION


Es gibt mehrere Metaoptionen, die JSON nicht direkt bearbeiten. Rufen Sie diese höchstens einmal pro Woche auf
Aufruf.

-F
(Datei) liest aus einer Datei statt aus stdin. Die einzige nichtmanipulationsfreie Möglichkeit, eine zu nehmen
Argument.

-P (jsonp) entfernt einen JSONP-Rückruf, bevor normal fortgefahren wird.

-S (sort) gibt JSON nach Schlüssel sortiert zurück, anstelle der ursprünglichen Reihenfolge.

-Q (leise) deaktiviert die Fehlerberichterstattung auf stderr, sodass Sie nicht „2> /dev/null“ einstreuen müssen
im gesamten Skript.

-V (by-value) ermöglicht die Wertübergabe im Bearbeitungsverlaufsstapel. Im Extremfall mit
Dies kann zu Tausenden von tief verschachtelten Werten führen jshon läuft um ein Vielfaches langsamer
und verbraucht dabei ein Vielfaches an Speicher. Allerdings ist By-Value sicherer als By-Reference und
sorgt im Allgemeinen für weniger Überraschung. „By-Reference“ ist standardmäßig aktiviert, da keine vorhanden ist
Risiko bei schreibgeschützten Vorgängen und macht die Bearbeitung von JSON im Allgemeinen bequemer.

jshon -ec -n 7 -id -p -> c["d"] == 7
jshon -V -ec -n 7 -id -p -> c["d"] == 5
jshon -V -ec -n 7 -id -ic -> c["d"] == 7

Mit der -V , müssen Änderungen manuell über den Stapel zurück eingefügt werden, anstatt einfach
Herausspringen der Zwischenwerte.

-C (Fortsetzung) über potenziell behebbare Fehler. Beispielsweise das Extrahieren von Werten, bei denen dies nicht der Fall ist
exist fügt „null“ zum Bearbeitungsstapel hinzu, anstatt abzubrechen. Das Verhalten kann sich ändern
Zukunft.

-I (In-Place-)Dateibearbeitung. Erfordert eine Datei zum Ändern und funktioniert daher nur mit -F. Das ist
Gedacht für geringfügige Änderungen an einer JSON-Datei. Bei Verwendung wird die normale Ausgabe unterdrückt
und der untere Rand des Bearbeitungsstapels wird ausgeschrieben.

-0 (Null-Trennzeichen) Ändert das Trennzeichen von -u von einer neuen Zeile in eine Null. Diese Option
wirkt sich nur auf -u aus, da dies das einzige Mal ist, dass ein Zeilenumbruch legitimerweise im angezeigt werden darf
Ausgabe.

--Version
Gibt einen Zeitstempel JJJJMMTT zurück und wird beendet.

anderes TOOLS


jshon gibt immer ein Feld pro Zeile aus. Viele Unix-Tools erwarten mehrere durch Tabulatoren getrennte Zeichen
Felder pro Zeile. Um dieses Problem zu beheben, leiten Sie die Ausgabe über „Einfügen“ weiter. Das Einfügen ist jedoch nicht möglich
Behandeln Sie leere Zeilen und füllen Sie diese mit einem Platzhalter auf. Hier ist ein Beispiel:

jshon ... | sed 's/^$/-/' | einfügen -s -d '\t\t\n'

Dadurch werden Leerzeichen durch „-“ ersetzt und alle drei Zeilen zu einer zusammengeführt.

Es gibt immer mehr Tools, die JSON-Ausgaben erzeugen. Oftmals verwenden diese eine zeilenorientierte
JSON/Klartext-Hybrid, bei dem jede Zeile eine unabhängige JSON-Struktur ist. Das bedeutet leider
Die Ausgabe als Ganzes ist kein legitimes JSON. Entweder die Daten Zeile für Zeile durchlaufen
(Berufung jshon einmal für jede Zeile) oder konvertieren Sie es in ein legitimes JSON-Array. Zum Beispiel:

while read line; do jshon <<< "$line"; erledigt < <(journalctl -o json)

journalctl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | jshon

GOLF


Wenn Sie Wert auf extrem kurze Einzeiler legen, können Argumente komprimiert werden, wenn dies nicht der Fall ist
Unklarheiten hervorrufen. Das Beispiel von -Pop) kann wie folgt gegolft werden:

jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u

Ich empfehle dies nicht (es macht die Dinge viel schwieriger zu verstehen), aber einige Leute
Golf trotz der Konsequenzen.

ERSTELLEN JSON


jshon kann JSON erstellen, indem ein leeres Objekt als Eingabe übergeben wird:

jshon -s one -ia <<< "{}"

AUTOREN


jshon wurde von Kyle Keen geschrieben[E-Mail geschützt] > mit Patches von Dave Reisner
<[E-Mail geschützt] >, AndrewF (BSD, OSX, JSONP, Sortierung) und Jean-Marc A (Solaris).

Verwenden Sie jshon online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad