【发布时间】:2018-05-05 12:34:37
【问题描述】:
我收到 curl 的回复,格式如下:
[
{
"list": [
{
"value": 1,
"id": 12
},
{
"value": 15,
"id": 13
},
{
"value": -4,
"id": 14
}
]
},
...
]
给定 id 之间的映射如下:
{
"12": "newId1",
"13": "newId2",
"14": "newId3"
}
我想做这个:
[
{
"list": {
"newId1": 1,
"newId2": 15,
"newId3": -4,
}
},
...
]
这样我就得到了从 id 到值的映射(并且在此过程中我想重新映射 id)。
我已经为此工作了一段时间,每次遇到死胡同。
注意:如有必要,我可以使用 Shell 或类似工具来执行循环。
编辑:这是我目前开发的一个版本:
jq '[].list.id = ($mapping.[] | select(.id == key)) | del(.id)' -M --argjson "mapping" "$mapping"
我认为这不是最好的,但我正在寻找是否能找到更接近我需要的旧版本。
【问题讨论】:
标签: json bash translation jq