Que estoy recibiendo 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), utilizando Bash o una línea de comandos (por ejemplo,underscore) ?

  • Es JavaScript solución, bien para usted?
  • A través de NPM módulo de sí. De lo contrario, no.
  • Comprobar mi solución. Que no necesita ningún mecanismo nacional de prevención. Llanura De JavaScript.
  • Estoy en una fiesta contexto, no de la web
  • Usted sabe que usted puede ejecutar JavaScript en la concha, a la derecha?
InformationsquelleAutor | 2014-01-24

3 Comentarios

  1. 306

    Acaba de lanzar otra solución en la mezcla de…

    Intentar jq, un ligero y flexible de la línea de comandos JSON procesador:

    jq length /tmp/test.json

    Imprime la longitud de la matriz de objetos.

    • Su inicial jq código (.[]) devolver la longitud de cada object en la raíz de la matriz, mientras que yo estoy buscando, la longitud de la raíz de la propia matriz. La necesidad de corregir a .
    • Si la raíz no es un array, pero un objeto con una clave que contiene una matriz, es decir, { «key»: [elem1, elem2] } , entonces usted puede utilizar jq '.[] | length' file.json
    • Increíble herramienta, jq es. +1
    • Otra opción útil para que @MnemonicFlow es jq map_values(length) file.json . Que te dará las claves.
    • Y si su entrada está hecha de objetos independientes en lugar de una sola matriz, tendría que utilizar la -s o --slurp opción, que recoge en una matriz durante la lectura: jq -s length file.json
    • . | no es necesario, jq 'length' ... es suficiente
    • Tampoco he entendido mal, o estás equivocado. echo '{"key":[1,"asdf"]}' | jq '.[] | length' da un error. Lo que produce el resultado esperado para mí es echo '{"key":[1,"asdf"]}' | jq '.key | length'.

Dejar respuesta

Please enter your comment!
Please enter your name here