我想从JSON中删除JSON元素或一整行.
我有以下JSON字符串:
{
"result":[
{
"FirstName": "Test1",
"LastName": "User",
},
{
"FirstName": "user",
"LastName": "user",
},
{
"FirstName": "Ropbert",
"LastName": "Jones",
},
{
"FirstName": "hitesh",
"LastName": "prajapti",
}
]
}
Run Code Online (Sandbox Code Playgroud)
dte*_*eoh 164
var json = { ... };
var key = "foo";
delete json[key]; // Removes json.foo from the dictionary.
Run Code Online (Sandbox Code Playgroud)
您可以使用splice从数组中删除元素.
mpl*_*jan 20
您的JSON中没有逗号逗号
更新:如果要从对象中的数组中删除项目,则需要使用array.splice而不是删除
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.Run Code Online (Sandbox Code Playgroud)
Far*_*rax 12
您可以尝试删除JSON,如下所示:
var bleh = {first: '1', second: '2', third:'3'}
alert(bleh.first);
delete bleh.first;
alert(bleh.first);
Run Code Online (Sandbox Code Playgroud)
或者,您也可以传入索引以删除属性:
delete bleh[1];
Run Code Online (Sandbox Code Playgroud)
但是,要了解使用删除操作的一些后果,请查看此处
Sah*_*han 11
我推荐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.
}
});
Run Code Online (Sandbox Code Playgroud)
我使用这个是因为当我使用delete方法时,我会null在我做之后得到对象JSON.stringify(json)
对于那些来到这里寻找如何根据对象值从 JSON 数组中删除对象的人:
let users = [{"name": "Ben"},{"name": "Tim"},{"name": "Harry"}];
for (let [i, user] of users.entries()) {
if (user.name == "Tim") {
users.splice(i, 1);
}
}Run Code Online (Sandbox Code Playgroud)
用户Tim现在从 JSON 数组users 中删除。
正如@mplungjan 所描述的,我认为这是对的。然后我马上点击了加价按钮。但是通过遵循它,我终于得到了一个错误。
<script>
var data = {"result":[
{"FirstName":"Test1","LastName":"User","Email":"test@test.com","City":"ahmedabad","State":"sk","Country":"canada","Status":"False","iUserID":"23"},
{"FirstName":"user","LastName":"user","Email":"u@u.com","City":"ahmedabad","State":"Gujarat","Country":"India","Status":"True","iUserID":"41"},
{"FirstName":"Ropbert","LastName":"Jones","Email":"Robert@gmail.com","City":"NewYork","State":"gfg","Country":"fgdfgdfg","Status":"True","iUserID":"48"},
{"FirstName":"hitesh","LastName":"prajapti","Email":"h.prajapati@zzz.com","City":"","State":"","Country":"","Status":"True","iUserID":"78"}
]
}
alert(data.result)
delete data.result[3]
alert(data.result)
</script>
Run Code Online (Sandbox Code Playgroud)
Delete 只是删除数据,但 'place' 仍然作为undefined 存在。
我这样做了,它就像一个魅力:
data.result.splice(2,1);
Run Code Online (Sandbox Code Playgroud)
含义:删除位置 3 处的 1 个项目(因为数组从 0 开始计数,那么第 3 个项目被视为没有 2)
所有的答案都很棒,它也会按照你的要求做,但我相信删除它的最佳方法,以及垃圾收集器的最佳方法(如果你运行node.js)是这样的:
var json = { <your_imported_json_here> };
var key = "somekey";
json[key] = null;
delete json[key];
Run Code Online (Sandbox Code Playgroud)
这样垃圾收集器node.js将知道json['somekey']不再需要,并将删除它.
试试这个
var myJSONObject ={"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"};
console.log(myJSONObject);
console.log(myJSONObject.ircEvent);
delete myJSONObject.ircEvent
delete myJSONObject.regex
console.log(myJSONObject);
Run Code Online (Sandbox Code Playgroud)