Json 如何使用jq将子值聚合到数组中?
我不熟悉Json 如何使用jq将子值聚合到数组中?,json,shell,jq,Json,Shell,Jq,我不熟悉jq,尝试将images键的值提取到一个新键中,以便 { “环境”:{ “登台”:{ “应用程序”:{ “网络”:{ “图像”:“图像1” } } }, “生产”:{ “应用程序”:{ “网络”:{ “图像”:“图像2” }, “管理员”:{ “图像”:“图像3” } } } } } 变成这样: { “环境”:{ “登台”:{ “图像”:[ “图像1” ] } }, “生产”:{ “图像”:[ “图像2”, “图像3” ] } } 我一直在玩弄jq有一段时间了,有人能给我一个提示吗?
jq
,尝试将images
键的值提取到一个新键中,以便
{
“环境”:{
“登台”:{
“应用程序”:{
“网络”:{
“图像”:“图像1”
}
}
},
“生产”:{
“应用程序”:{
“网络”:{
“图像”:“图像2”
},
“管理员”:{
“图像”:“图像3”
}
}
}
}
}
变成这样:
{
“环境”:{
“登台”:{
“图像”:[
“图像1”
]
}
},
“生产”:{
“图像”:[
“图像2”,
“图像3”
]
}
}
我一直在玩弄
jq
有一段时间了,有人能给我一个提示吗?假设结果是环境
对象同时包含暂存
和生产
,您可以使用以下jq
命令:
<file jq '.environments |= (.[] |= {images : (.apps|map(.[]))})'
{
"environments": {
"staging": {
"images": [
"image1"
]
},
"production": {
"images": [
"image2",
"image3"
]
}
}
}