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