在JQ中删除嵌套对象中的字段

Iai*_*can 4 json key jq

我有一个包含summary字段和其他字段的 JSON 行文件。我想使用 JQ 删除所有汇总字段。这是我的输入:

{"object1": {"summary":"Some summary I want removing", "keepMe":"please"}}
{"object2": {"summary":"Delete me too!", "keepMe":"pretty please"}}
Run Code Online (Sandbox Code Playgroud)

这是所需的输出:

{"object1": {"keepMe":"please"}}
{"object2": {"keepMe":"pretty please"}}
Run Code Online (Sandbox Code Playgroud)

pea*_*eak 7

Q 有几种可能的解释。

解决最简单解释的一种简单方法是使用:

map_values(del(.summary))
Run Code Online (Sandbox Code Playgroud)

如果您想在任何地方消除“摘要”字段,无论嵌套有多深,那么我都会使用walk/1,例如

walk(if type == "object" then del(.summary) else . end)
Run Code Online (Sandbox Code Playgroud)