gpt4 book ai didi

json - 在 jq 中组合并重新键入多个对象

转载 作者:行者123 更新时间:2023-12-04 16:17:29 25 4
gpt4 key购买 nike

我从一个包含多个对象的 JSON 文件开始

{
"name": "foo",
"url": "https://zombo.com"
}
{
"name": "bar",
"url": "https://acme.com"
}

我正在尝试将它们组合成一个对象,并将 name 属性作为键:

{
"widgets": {
"foo": {
"url": "https://zombo.com"
},
"bar": {
"url": "https://acme.com"
}
}
}

一段时间以来,我一直在努力反对这个问题,我认为我非常接近以下查询:

{ widgets: (reduce . as $item ({}; . + {($item.name): {url: $item.url}})) }

但是,这会导致多个对象,我的想法已经用完了。

jqplay 可在此处获得:https://jqplay.org/s/SI7XEMb5l9 .

最佳答案

我会这样做 this :

jq -s '{ widgets: map( { (.name): {url} } ) | add }'
  • -s (--slurp) 将对象组合成一个对象数组
  • map( { (.name): { url } } ) reshape 每个对象
  • add 将数组元素连接成一个对象
  • 最后,我使用 { widgets: ... } 构建了一个对象。

关于json - 在 jq 中组合并重新键入多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54929491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com