gpt4 book ai didi

arrays - JQ 将数组展平为对象

转载 作者:行者123 更新时间:2023-12-04 08:46:31 25 4
gpt4 key购买 nike

我在应该是一个简单的任务中使用 JQ 时遇到了问题。
这是一个示例 JSON:

[
{
"title": "channel 1",
"url": "rtsp://thelink"
},
{
"title": "channel UFO",
"url": "rtsp://thatlink"
},
{
"title": "channel oreo",
"url": "rtsp://thatotherlink"
},
{
"title": "channel blabla",
"url": "rtsp://yetanotherlink"
},
{
"title": "channel potato",
"url": "rtsp://anotherlinkwhatnow"
}
]
我试图将阵列展平成更大的阵列,以便以后在低功耗设备上更容易解析。它应该是这样的:
{
"channel 1": "rtsp://thelink",
"channel UFO": "rtsp://thatlink",
"channel oreo": "rtsp://thatotherlink",
"channel blabla": "rtsp://yetanotherlink",
"channel potato": "rtsp://anotherlinkwhatnow"
}
我什至不会假装了解 JSON 工作原理的完整结构,但是随着此类小问题的解决,我更接近于理解。
任何帮助表示赞赏。 FWIW,精通 PHP 我可以非常简单地使用 foreach 进行迭代并以每个值作为键重新创建新的。但我真的希望更好地了解 JQ 的工作原理(不是因为缺乏尝试或阅读手册!)。

最佳答案

使用 map根据您感兴趣的字段将对象数组映射到键值对,然后 add将这些对合并为一个对象。

$ jq 'map({(.title): .url}) | add' test.json
{
"channel 1": "rtsp://thelink",
"channel UFO": "rtsp://thatlink",
"channel oreo": "rtsp://thatotherlink",
"channel blabla": "rtsp://yetanotherlink",
"channel potato": "rtsp://anotherlinkwhatnow"
}

关于arrays - JQ 将数组展平为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64288520/

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