Recibo este tipo de JSON
respuesta de un curl
comando:
[
{
"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": ""
}
]
¿Cómo puedo contar el número de elementos en la matriz (aquí 2
), usando Bash
o una línea de comando (por ejemplo underscore
)?
NPM
módulo sí. De otra manera no.Respuestas:
Simplemente lanzando otra solución en la mezcla ...
Pruebe
jq
, un procesador JSON de línea de comandos ligero y flexible:Imprime la longitud de la matriz de objetos.
fuente
jq
código inicial (.[]
) devuelve la longitud de cada unoobject
en la matriz raíz, mientras busco la longitud de la matriz raíz en sí. Necesito arreglarlo.
jq '.[] | length' file.json
jq
es. +1jq map_values(length) file.json
. Eso también te dará las llaves.-s
o--slurp
, que los recopila en una matriz mientras lee:jq -s length file.json
La expresión más corta es
fuente
Una solución simple es instalar la
jshon
biblioteca:fuente