web-dev-qa-db-ja.com

コマンドラインを使用して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": ""
  }
]

Bashまたはコマンドライン(underscoreなど)を使用して、配列(ここでは2)内のアイテムの数をカウントするにはどうすればよいですか?

143
Édouard Lopez

ミックスに別のソリューションを投入するだけです...

jq をお試しください。軽量で柔軟なコマンドラインJSONプロセッサーです。

jq length /tmp/test.json

オブジェクトの配列の長さを出力します。

306
Ken

最短の表現は

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

簡単な解決策は jshon libraryをインストールすることです:

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