移除 JSON 元素

IT技术 javascript json
2021-02-23 15:22:32

我想从 JSON 中删除 JSON 元素或一整行。

我有以下 JSON 字符串:

{
   "result":[
       {
           "FirstName": "Test1",
           "LastName":  "User",
       },
       {
           "FirstName": "user",
           "LastName":  "user",
       },
       {
           "FirstName": "Ropbert",
           "LastName":  "Jones",
       },
       {
           "FirstName": "hitesh",
           "LastName":  "prajapti",
       }
   ]
}
6个回答
var json = { ... };
var key = "foo";
delete json[key]; // Removes json.foo from the dictionary.

您可以使用splice从数组中删除元素。

为什么最差的答案总是排在最前面?可能是代表点吗?我搜索过。我发现。你有正确的答案。
2021-04-21 15:22:32
使用delete会在数组中留下一个空元素
2021-04-21 15:22:32
测试数据中的 foo 在哪里?嗯,第一行实际上是伪代码。而不是 json = {...},它将类似于 json = {foo: 'value'}
2021-05-04 15:22:32
我没有得到这个答案。测试数据中的“foo”在哪里?
2021-05-07 15:22:32
删除 json[key]; ? 给定示例中有多少个“名字”?错误的答案。
2021-05-19 15:22:32

对象中不要有尾随逗号(JSON 是字符串表示法)

更新如果要从对象中的数组中删除项目,则需要使用array.splice而不是 delete 。或者在删除后过滤未定义的数组

var data = {
  "result": [{
    "FirstName": "Test1",
    "LastName": "User"
  }, {
    "FirstName": "user",
    "LastName": "user"
  }]
}
console.log(data.result);
console.log("------------ deleting -------------");
delete data.result[1];
console.log(data.result); // note the "undefined" in the array.


data = {
  "result": [{
    "FirstName": "Test1",
    "LastName": "User"
  }, {
    "FirstName": "user",
    "LastName": "user"
  }]
}

console.log(data.result);
console.log("------------ slicing -------------");
var deletedItem = data.result.splice(1,1);
console.log(data.result); // here no problem with undefined.

您可以尝试按如下方式删除 JSON:

var bleh = {first: '1', second: '2', third:'3'}

alert(bleh.first);

delete bleh.first;

alert(bleh.first);

或者,您也可以传入索引来删除属性:

delete bleh[1];

但是,要了解使用删除的一些影响,请查看此处

我推荐splice从 JSON 对象数组中删除对象的方法。

jQuery(json).each(function (index){
        if(json[index].FirstName == "Test1"){
            json.splice(index,1); // This will remove the object that first name equals to Test1
            return false; // This will stop the execution of jQuery each loop.
        }
});

我使用这个是因为当我使用delete方法时,我会null在我做之后得到对象JSON.stringify(json)

Splice 应该是公认的答案,delete 用 NULL 插入替换 json 文档......我想删除它 - splice 会。
2021-05-10 15:22:32

对于那些来到这里寻找如何根据对象值从 JSON 数组中删除对象的人:

let users = [{"name": "Ben"},{"name": "Tim"},{"name": "Harry"}];

 for (let [i, user] of users.entries()) {
    if (user.name == "Tim") {
        users.splice(i, 1);
    }
 }

用户Tim现在从 JSON 数组users 中删除

已投票,但如果用户列表中有多个 Tim,则此操作失败。您需要向后循环以避免在删除步骤期间弄乱数组索引。
2021-04-23 15:22:32
我同意@TawabWakil 好点:)
2021-05-08 15:22:32