objeto - recorrer json javascript
¿Cómo contar elementos en el objeto JSON usando la línea de comando? (4)
Recibo este tipo de respuesta JSON
de un comando curl
:
[
{
"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
)?
La expresión más corta es
curl ''http://…'' | jq length
Quizás puedas seguir contando con awk
:
$ awk ''/{/ {d++} /}/ {d--} /{/ && d==1 {count++} END{print count}'' file
2
-
/{/ {d++}
si{
se encuentra, incrementa la variable de profundidad. -
/}/ {d--}
if}
, disminuya la variable de profundidad. -
/{/ && d==1 {count++}
si la profundidad es 1 y encuentra un{
, luego agrega una coincidencia en el contador. -
END{print count}
imprime el resultado.
Solo lanzando otra solución en la mezcla ...
Pruebe jq
, un procesador JSON liviano y flexible de línea de comandos:
jq ''. | length'' /tmp/test.json
Imprime la longitud de la matriz de objetos.
Una solución simple es instalar la biblioteca jshon
:
jshon -l < /tmp/test.json
2