JQ:从 JSON 中删除空数组

JQ: Remove empty arrays from JSON

我在使用 jq.

从 JSON 文件中删除所有空数组时遇到问题

我试过:

walk(if type == "array" then map(select(length > 0)) else . end)

删除空字符串,但数组保留在文档中。有没有办法完全删除阵列? 感谢您的支持。

您可以使用 ..、select 空数组 [] 的所有内容并将其设置为 empty

(.. | select(. == [])) |= empty

编辑:

中,oguz ismail 使用 del() 而不是 |= empty 如果要删除的空数组可能不仅位于对象 [=17] 中,这是首选方法=] 但也在上级数组中 ([[]]).

del(.. | select(. == []))