het EngelsFransSpaans

Servers draaien | Ubuntu > | Fedora > |


OnWorks-favicon

jshon - Online in de cloud

Voer jshon uit in OnWorks gratis hostingprovider via Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

Dit is de opdracht jshon die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator

PROGRAMMA:

NAAM


jshon — JSON-parser voor de shell

KORTE INHOUD


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

PRODUCTBESCHRIJVING


jshon parseert, leest en maakt JSON. Het is ontworpen om zo bruikbaar mogelijk te zijn vanaf
binnen de shell en vervangt fragiele adhoc-parsers gemaakt van grep/sed/awk evenals
zwaargewicht eenregelige parsers gemaakt van perl/python.

jshon laadt json-tekst van stdin, voert acties uit en geeft vervolgens de laatste actie weer op stdout.
Sommige opties voeren json uit, andere geven samenvattingen in platte tekst weer. Omdat Bash zeer
slechte geneste datastructuren, jshon retourneert de JSON niet als een native object als een typische
bibliotheek zou. In plaats daarvan jshon bewaart een geschiedenis van bewerkingen in een stapel, en u manipuleert de
bovenste JSON-element.

ACTIES


Elke actie heeft de vorm van een korte optie. Sommige hebben argumenten nodig. Terwijl veel gevallen
of jshon kunnen door elkaar worden geleid, acties moeten opeenvolgend worden geketend om te verminderen
belt. Alle voorbeelden gebruiken dit json-voorbeeld:

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

Voor de meest voorkomende alleen-lezen toepassingen zijn er maar een paar nodig -e acties en een -a in het midden van
Hen.

-t (type) retourneert string, object, array, number, bool, null

jshon -t -> object

-l (lengte) retourneert een geheel getal. Werkt alleen op string, object, array.

jshon -l -> 3

-k (sleutels) retourneert een door een nieuwe regel gescheiden lijst met sleutels. Werkt alleen op object.

jshon -k -> abc

-e index
(extract) retourneert de json-waarde op "index". Werkt alleen op object, array. De index van een
array is een geheel getal.

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

-a (over) wijst de resterende acties toe aan het geselecteerde element. Werkt alleen op objecten
en arrays. Meerdere -a oproepen kunnen worden genest, hoewel de noodzaak in de praktijk zeldzaam is.

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

-s waarde
(string) retourneert een json-gecodeerde string. Kan later worden (-i)ingevoegd in een bestaande
structuur.

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

-n waarde
(nonstring/number) retourneert een json-element. Kan later worden (-i)ingevoegd in een bestaande
structuur. Geldige waarden zijn 'true', 'false', 'null', 'array', 'object', integers en
drijft. Afkortingen t, f, n, [] en {} werken respectievelijk ook.

jshon -n object -> {}

-u (unstring) retourneert een gedecodeerde string. Werkt alleen op eenvoudige typen: string, int, real,
booleaans, null.

jshon -eb -e 3 -u -> str

-p (pop) haalt de laatste manipulatie uit de stapel en spoelt de geschiedenis terug. Handig voor
het extraheren van meerdere waarden uit één object.

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

-d index
(delete) verwijdert een item in een array of object. Negatieve array-indexen worden ingepakt
in de omgeving van.

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

-i index
(invoegen) is ingewikkeld. Het is het omgekeerde van extract. Extract plaatst een json-subelement
op de stapel. Insert verwijdert een subelement van de stapel en voegt dat stukje json in
in de grotere array/object eronder. Gebruik extract om in de json-boom te duiken,
delete/string/nonstring om dingen te veranderen, en insert om de veranderingen terug te duwen in de
boom.

jshon -ea -ia -> de originele json
jshon -s een -ia -> {"a":"een", ...}

Arrays worden op een speciale manier behandeld. Als u gehele getallen doorgeeft, wordt een waarde ingevoegd zonder
overschrijven. Negatieve gehele getallen zijn acceptabel, net als de string 'append'. overschrijven
een waarde in een array: verwijder de index, -NS de nieuwe waarde en voeg vervolgens in bij de index.

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

NIET-MANIPULATIE


Er zijn verschillende meta-opties die json niet rechtstreeks bewerken. Roep deze maximaal één keer per
aanroeping.

-F
(file) leest uit een bestand in plaats van stdin. De enige niet-manipulatie-optie om een
argument.

-P (jsonp) verwijdert een jsonp-callback voordat u normaal doorgaat.

-S (sort) retourneert json gesorteerd op sleutel, in plaats van de oorspronkelijke volgorde.

-Q (stil) schakelt foutrapportage op stderr uit, zodat u "2> /dev/null" niet hoeft te sprenkelen
door je hele script.

-V (op waarde) schakelt pass-by-waarde in op de bewerkingsgeschiedenisstapel. In extreme gevallen met
duizenden diep geneste waarden kan dit resulteren in jshon loopt meerdere keren langzamer
terwijl u meerdere keren meer geheugen gebruikt. Bij-waarde is echter veiliger dan bij-referentie en
zorgt over het algemeen voor minder verrassingen. Doorverwijzing is standaard ingeschakeld omdat er geen
risico tijdens alleen-lezen bewerkingen en maakt het bewerken van json over het algemeen gemakkelijker.

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

met -V , wijzigingen moeten handmatig terug door de stapel worden ingevoegd in plaats van gewoon
de tussenliggende waarden eruit knallen.

-C (vervolg) over mogelijk herstelbare fouten. Bijvoorbeeld het extraheren van waarden die dat niet doen
bestaan ​​voegt 'null' toe aan de bewerkingsstapel in plaats van af te breken. Gedrag kan veranderen in de
toekomst.

-I (ter plaatse) bestandsbewerking. Vereist een bestand om te wijzigen en werkt dus alleen met -F. Dit is
bedoeld voor het aanbrengen van kleine wijzigingen in een json-bestand. Bij gebruik wordt de normale uitvoer onderdrukt
en de onderkant van de bewerkingsstapel wordt uitgeschreven.

-0 (null scheidingstekens) Verandert het scheidingsteken van -u van een nieuwe regel in een null. Deze optie
heeft alleen invloed op -u omdat dat de enige keer is dat een nieuwe regel legitiem kan verschijnen in de
uitgang.

--versie
Retourneert een JJJJMMDD-tijdstempel en sluit af.

ANDERE TOOLS


jshon geeft altijd één veld per regel af. Veel unix-tools verwachten meerdere gescheiden tabbladen
velden per regel. Leid de uitvoer door 'plakken' om dit op te lossen. Plakken kan echter niet
omgaan met lege regels, dus vul die met een tijdelijke aanduiding. Hier is een voorbeeld:

jshon ... | sed 's/^$/-/' | plak -s -d '\t\t\n'

Dit vervangt spaties door '-' en voegt elke drie regels samen tot één.

Er zijn steeds meer tools die json-uitvoer produceren. Vaak gebruiken deze een lijngerichte
json/plaintext hybride waarbij elke regel een onafhankelijke json-structuur is. Helaas betekent dit:
de uitvoer als geheel is geen legitieme json. Ofwel een lus door de data lijn voor lijn
(roeping jshon eenmaal voor elke regel) of converteer het naar een legitieme json-array. Bijvoorbeeld:

terwijl leesregel; doe jshon <<< "$line"; gedaan <<(journalctl -o json)

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

GOLF


Als u extreem korte one-liners belangrijk vindt, kunnen argumenten worden gecondenseerd als dat niet het geval is
onduidelijkheid veroorzaken. Het voorbeeld van -knal) kan als volgt worden gegolfd:

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

Ik raad het niet aan om dit te doen (het maakt dingen veel moeilijker te begrijpen), maar sommige mensen
golf ondanks de gevolgen.

CREREN JSON


jshon kan json maken door een leeg object als invoer door te geven:

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

AUTEURS


jshon is geschreven door Kyle Keenscherperd@gmail.com> met patches van Dave Reisner
<d@falconindy.com>, AndrewF (BSD, OSX, jsonp, sorteren) en Jean-Marc A (solaris).

Gebruik jshon online met onworks.net-services


Ad


Ad