Ich erhalte diese Art von JSON
Antwort von einem curl
Befehl:
[
{
"cid": 49,
"pyn": "yi4",
"hans": "亿",
"hant": "億",
"tid": 68,
"l10n": "cent million",
"pid": 1,
"pos": "num",
"pos_txt": ""
},
{
"cid": 50,
"pyn": "yi4",
"hans": "亿",
"hant": "億",
"tid": 69,
"l10n": "100 millions",
"pid": 1,
"pos": "num",
"pos_txt": ""
}
]
Wie kann ich die Anzahl der Elemente im Array (hier 2
) mithilfe Bash
einer Befehlszeile (z. B. underscore
) zählen?
NPM
Modul ja. Ansonsten nein.Antworten:
Wirf einfach eine andere Lösung in die Mischung ...
Probieren Sie
jq
einen leichten und flexiblen JSON-Befehlszeilenprozessor aus:Druckt die Länge des Array von Objekten.
quelle
jq
Code (.[]
) gibt die Länge jedes einzelnenobject
im Root-Array zurück, während ich nach der Länge des Root-Arrays selbst suche. Muss behoben werden.
jq '.[] | length' file.json
jq
ist. +1jq map_values(length) file.json
. Das gibt Ihnen auch die Schlüssel.-s
oder--slurp
, die sie beim Lesen in einem Array sammelt:jq -s length file.json
Der kürzeste Ausdruck ist
quelle
Eine einfache Lösung besteht darin, die
jshon
Bibliothek zu installieren :quelle