我从curl命令中得到这样的JSON回复:

[
  {
    "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或命令行(例如下划线)?


当前回答

qic试试。它像jq/jello一样工作。Qic支持交互模式。

油漆测试。json | qic”len (_)

https://walkerever.github.io/qic/

其他回答

一个简单的解决方案是安装jshon库:

jshon -l < /tmp/test.json
2

您还可以使用jq在返回的json中跟踪数组,然后将其输送到第二个jq调用中以获取其长度。假设它在一个名为records的属性中,如{"records":[…]}。

$ curl https://my-source-of-json.com/list | jq -r '.records | length'
2
$ 

只是在混合物中加入另一种溶液……

试试jq吧,一个轻量级灵活的命令行JSON处理器:

jq length /tmp/test.json

打印对象数组的长度。

最短的表达式是

curl 'http://…' | jq length

qic试试。它像jq/jello一样工作。Qic支持交互模式。

油漆测试。json | qic”len (_)

https://walkerever.github.io/qic/