考虑以下 json:
{
a: {
b: {
c: 1,
d: 2
}
}
}
如何将 b 的所有属性移动到父 a 下:
{
a: {
c: 1,
d: 2,
b: {}
}
}
最佳答案
对于这种特殊情况,您可以这样做:
$ jq '.a |= (.b = {}) + .b' input.json
我们在这里更新对象 a
原始内容与 b
替换为空对象并将其与原始 b
的内容组合.
如果这太难推理,这可能更容易理解:
$ jq '.a |=
with_entries(if .key == "b"
then (.value = {}), (.value | to_entries[])
else .
end)' input.json
关于json - Jq:如何将子成员移动到父成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42214984/