首页 > 解决方案 > 删除包含特定键 JSON 的对象

问题描述

嗨,我有一个 JSON 文件,如下所示:

{"a" :[ 
       {
            "b": "name_1",
            "c":[
                   {"d": "value_1", "e": "true"},
                   {"d": "value_2"},
                   {"d": "value_3", "e": "true"}
                ]
       },
       {
           "b": "name_2",
           "c":[
                   {"d": "value_4", "e": "true"},
                   {"d": "value_5"},
                   {"d": "value_6"}
                ]}
       ] 

}

我想删除“c”中包含键“e”的每个对象。

我试图用 JQ 做,但我无法获得正确的命令/过滤器......

最近我来了...... https://jqplay.org/s/fDzVed_Isv

标签: arraysjsonkey

解决方案


要删除包含您必须键入的键的对象:

jq 'del( .a[].c[] | select(has("e")))' 

https://jqplay.org/s/B-JW8wnqG3

感谢@steeldriver 在这篇文章中回答了这个问题 https://askubuntu.com/questions/1046215/find-substring-in-file/1046230?noredirect=1#comment1706714_1046230


推荐阅读