考虑这个文件:
{"x": [
{
"a": {
"b": [],
"c": 42
}
},
{
"a": {
"d": true
}
}
]}
但现在我需要将所有b
(不需要存在!)移动到这样的一级:
{"x": [
{
"a": {
"e": {
"b": []
},
"c": 42
}
},
{
"a": {
"d": true
}
}
]}
我见过the example that does the opposite,但遗憾的是我无法将其应用于我的案例。
答案 0 :(得分:0)
假设输入是有效的JSON,并且可以在任何可能的地方应用转换,我会使用walk
,为简单起见:
walk( if type == "object" and has("b")
then .e = .b | del(.b)
else . end )
你可能想要检查.e的存在,以避免破坏它。
如果你的jq没有walk
,那么只需在上面插入def;对于定义,只需谷歌:jq“def walk”