Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 删除包含特定键JSON的对象_Arrays_Json_Key - Fatal编程技术网

Arrays 删除包含特定键JSON的对象

Arrays 删除包含特定键JSON的对象,arrays,json,key,Arrays,Json,Key,您好,我有一个类似于followin的JSON文件: {"a" :[ { "b": "name_1", "c":[ {"d": "value_1", "e": "true"}, {"d": "value_2"}, {"d": "value_3", "e": "true"} ]

您好,我有一个类似于followin的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做,但是我不能得到正确的命令/过滤器


最近的一次我来了

检查你的链接,我发现你的删除返回空值

您可能希望使用
拼接
,而不是
删除

参考:

否则,您可以使用地图中的地图执行此操作

var obj = {"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"}
                ]}
       ] 

}
//console.log('obj is: ', obj)
//console.log('obj.a is: ', obj.a)
var array = obj.a
var x = array.map(function(eachThing) {
    var newArr = eachThing.c
  newArr.map(function(eachObj) {
  console.log(eachObj)
  if (eachObj.e === "true")
  console.log('delete this!')
  })
})
x

jsIDLE:

要删除包含您必须键入的密钥的对象,请执行以下操作:

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

感谢@steeldriver在本文中回答了这个问题