web-dev-qa-db-fra.com

Comment compter les éléments dans un objet JSON en utilisant la ligne de commande?

Je reçois ce genre de réponse JSON à partir d'une commande 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": ""
  }
]

Comment puis-je compter le nombre d'éléments dans le tableau (ici 2), en utilisant Bash ou une ligne de commande (par exemple, underscore)?

148
Édouard Lopez

Je viens de lancer une autre solution dans le mélange ...

Essayez jq , un processeur JSON de ligne de commande léger et flexible:

jq length /tmp/test.json

Imprime la longueur du tableau d'objets.

312
Ken

La plus courte expression est

curl 'http://…' | jq length
38
nikolay

Une solution simple consiste à installer la bibliothèque jshon :

jshon -l < /tmp/test.json
2
3
Édouard Lopez