【问题标题】:How can I collect ids from a list of JSON objects into a list?如何从 JSON 对象列表中收集 id 到列表中?
【发布时间】:2021-03-10 19:33:23
【问题描述】:

我想用 jq 命令做一些过滤。我的输入 json 正文是这样的格式:

    {
      "payload": {
        "count": 23,
        "results": [
          {
            "id": 2,
            "name": "bob"
          },
          {
            "id": 5,
            "name" "John"
          }
       ]
     }
   }

我想得到这样的结果:

{"count": 23, "users": [2, 5]} 

所有的 id 都被分组到一个数组中。 jq 命令会是什么样子?

谢谢。

【问题讨论】:

  • 你尝试了吗?查找类似的问题?
  • 我自己找不到答案。你知道在哪里看吗?
  • 这确实可以使用更好的标题。有同样问题的其他人如何在搜索结果中查看“如何通过 jq 命令获得此类结果”,应该知道问题及其答案是否会对他们有所帮助?
  • ...一个更具体的问题标题示例可能是:如何将 JSON 对象列表中的 id 收集到只有这些 id 的列表中? --假设那实际上是您卡住的地方。 (我们要求您展示您的工作的部分原因是为了说明您已经了解的内容,以便更好地关注问题所在)。
  • 谢谢。已更正。

标签: json jq


【解决方案1】:

经过一番谷歌搜索并尝试了一些不同的选项,我刚刚弄清楚了如何使其工作,即:

echo "$json" | jq -c '{"count": .payload.count, "users": [.payload.results[].id]}'

【讨论】:

  • 或更多干货:jq -c '.payload | {count, "users": [.results[].id]}'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-22
  • 2021-12-31
相关资源
最近更新 更多