I have a list of objects that look like this:

[
  {
    "ip": "1.1.1.1",
    "component": "name1"
  },
  {
    "ip": "1.1.1.2",
    "component": "name1"
  },
  {
    "ip": "1.1.1.3",
    "component": "name2"
  },
  {
    "ip": "1.1.1.4",
    "component": "name2"
  }
]

现在,我想按组件对其进行分组并输入密钥,并 for each 组件分配一个IP列表:

{
  "name1": [
    "1.1.1.1",
    "1.1.1.2"
  ]
},{
  "name2": [
    "1.1.1.3",
    "1.1.1.4"
  ]
}

推荐答案

我自己想出来的.我首先按.component分组,然后只创建新的IP列表,这些列表由每个组的第一个对象的组件索引:

jq ' group_by(.component)[] | {(.[0].component): [.[] | .ip]}'

Json相关问答推荐

使用相同的密钥值来命名Json并使用Jolt重命名密钥

使用Jolt将字符串数组转换为JSON对象数组

Pandas 对REST API的自定义响应

如何让JSON子查询在没有行的情况下返回空数组而不是NULL

重构JOLT代码以获得预期输出

匹配来自不同数组的值

xidel:是否可以从 JSON 对象中检索特定的嵌套值?

修改 boost::json::object 中的值

使用杰克逊解析Kotlin 中的通用密封类

用powershell条件解析json文件的数组对象

jq搜索特定字符串并输出对应的父值

将哈希表转换为 json 后,Powershell 缺少数组

Google GCM 服务器返回未经授权的错误 401

如何判断 Json 对象中是否存在键并获取其值

json.decoder.JSONDecodeError:期望值:第 1 行第 1 列(字符 0)

使用 jq,将对象数组转换为具有命名键的对象

如何将有向无环图 (DAG) 存储为 JSON?

请求返回字节,我无法解码它们

NSManagedObject 属性值的 NSNull 处理

如何对 Javascript 对象进行排序,或将其转换为数组?