我有一些描述插件状态的json,读起来像
{
"mods": [
{
"name": "somename",
"enabled": true
},
{
"name": "someothername",
"enabled": false
}
]
}
我正试图将样板从中剥离出来进行演示和人工编辑,然后重新插入样板。我有一个人性化的转变,它紧凑而合理:
jq '[ .mods[]|{(.name): .enabled} ] | add' mod-list.json
{
"somename": true,
"someothername": false
}
但我坚持走另一条路:我希望将上面的输出转换回它的输入。
我看了看
keys_unsorted,.[]
但我不知道如何将序列拼接在一起,手册中对键“大致按插入顺序”有令人担忧的评论,这让我渴望得到一些更明确的保证,即该结构中的键和值序列即使不是原始序列,也至少会按相同的顺序。
我还尝试了foreach和reduce,它们非常接近,但(a)它们将键组合成一个数组,(b)我不知道如何获得相应的值:
jq 'foreach keys as $key ({};{name:$key, enabled:false}'
所以这就是我陷入困境的地方。