¿Cómo contar elementos en un objeto JSON usando la línea de comando?
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
)?
Aceptado
Simplemente estoy agregando otra solución a la mezcla...
Pruebe jq
, un procesador JSON de línea de comandos ligero y flexible:
jq length /tmp/test.json
Imprime la longitud de la matriz de objetos.
También puede usar jq para rastrear la matriz dentro del json devuelto y luego canalizarla a una segunda jq
llamada para obtener su longitud. Supongamos que estuviera en una propiedad llamada records
, como {"records":[...]}
.
$ curl https://my-source-of-json.com/list | jq -r '.records | length'
2
$
La expresión más corta es
curl 'http://…' | jq length