it-swarm.com.ru

Как считать элементы в объекте JSON с помощью командной строки?

Я получаю такой ответ JSON от команды 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": ""
  }
]

Как подсчитать количество элементов в массиве (здесь 2), используя Bash или командную строку (например, underscore)?

143
Édouard Lopez

Просто бросаю другое решение в смеси ...

Попробуйте jq , легкий и гибкий процессор JSON для командной строки:

jq length /tmp/test.json

Печатает длину массива объектов.

306
Ken

Самое короткое выражение

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

Простым решением является установка jshon библиотеки:

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