jQuery:递归删除所有与给定模式匹配的键

Ksh*_*rma 6 recursion json key tree-traversal jq

如何递归删除与给定模式匹配的所有键?

我有以下jq配置,但它似乎不起作用:

walk( if (type == "object" and (.[] | test('.*'))) then del(.) else . end)
Run Code Online (Sandbox Code Playgroud)

pea*_*eak 8

一个强大的方式(相对于不同的JQ版本),可删除模式匹配(比如PATTERN)所有的键是使用成语:

with_entries(select( .key | test(PATTERN) | not))
Run Code Online (Sandbox Code Playgroud)

代入这个walk/1收益率:

walk(if type == "object" then with_entries(select(.key | test(PATTERN) | not)) else . end)
Run Code Online (Sandbox Code Playgroud)