JQ删除多个属性

Vu *_*Anh 5 json jq

我有一个这样的对象:

{
    "a" : 1,
    "b" : {
        "c" : {
            "c1" : "abc",
            "source" : "abcxyz"
        },
        "d" : {
            "d1" : "abcd",
            "source" : "abcxyz"
        },
        "e" : {
            "e1" : "abcde",
            "source" : "abcxyz"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的期望是

{
    "a" : 1,
    "b" : {
        "c" : {
            "c1" : "abc"
        },
        "d" : {
            "d1" : "abcd"
        },
        "e" : {
            "e1" : "abcde"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想删除“源”属性。在没有指定键“ c”,“ d”或“ e”的情况下该怎么做,因为它们是动态的。

小智 12

遍历 中的所有元素.b,然后将它们的值设置为.source从中删除元素的结果:

.b[] |= del(.source)
Run Code Online (Sandbox Code Playgroud)


jq1*_*727 9

这是另一个解决方案

del( .b[].source )
Run Code Online (Sandbox Code Playgroud)