如何通过键值删除目标json

How can I delete a target json by key value?

本文关键字:目标 json 删除 键值 何通过      更新时间:2023-09-26

[Object,Object,Object]

Object{
       id:33,
       val:'a'
      },
Object{
       id:56,
       val:'b'
      },
Object{
       id:77,
       val:'a'
      },
Object{
       id:89,
       val:'d'
      }

现在我想删除id=56 的对象

如何使用js实现这一点?

这就是我想要的结果。

[对象,对象,对象]

Object{
       id:33,
       val:'a'
      },
Object{
       id:77,
       val:'a'
      },
Object{
       id:89,
       val:'d'
      }

谢谢。

使用delete怎么样?请注意,索引顺序将不会与此一起保留。

var text = '{"objects" : [{ "id":33, "val":"a"}, { "id":56, "val":"b"}, { "id":77, "val":"c"}, { "id":89, "val":"d"}]}';
var jsonData = JSON.parse(text);
for (var i = 0; i < jsonData.objects.length; i++) {
    var object = jsonData.objects[i];
    if(object.id == 56) {
        delete jsonData.objects[i];
    }
}

如果您想预先保存索引顺序,请使用以下代码。

var text = '{"objects" : [{ "id":33, "val":"a"}, { "id":56, "val":"b"}, { "id":77, "val":"c"}, { "id":89, "val":"d"}]}';
var jsonData = JSON.parse(text);
for (var i = 0; i < jsonData.objects.length; i++) {
    var object = jsonData.objects[i];
    if(object.id == 56) {
        jsonData.objects.splice(i, 1);
    }
}