Estou recebendo esse tipo de JSON
resposta de um 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": ""
}
]
Como posso contar o número de itens na matriz (aqui 2
), usando Bash
ou uma linha de comando (por exemplo underscore
)?
NPM
módulo sim. Caso contrário, não.Respostas:
Apenas jogando outra solução na mistura ...
Experimente
jq
, um processador JSON de linha de comando leve e flexível:Imprime o comprimento da matriz de objetos.
fonte
jq
código inicial (.[]
) retorna o comprimento de cada umobject
na matriz raiz, enquanto eu estou procurando o comprimento da matriz raiz. Precisa corrigir para.
jq '.[] | length' file.json
jq
é. +1jq map_values(length) file.json
. Isso lhe dará as chaves também.-s
ou--slurp
opção, que os recolhe em uma matriz enquanto lia:jq -s length file.json
A expressão mais curta é
fonte
Uma solução simples é instalar a
jshon
biblioteca:fonte