Ответ 1
var json = { ... };
var key = "foo";
delete json[key]; // Removes json.foo from the dictionary.
Вы можете использовать splice для удаления элементов из массива.
Я хочу удалить JSON-элемент или одну целую строку из JSON.
У меня есть строка JSON:
{
"result":[
{
"FirstName": "Test1",
"LastName": "User",
},
{
"FirstName": "user",
"LastName": "user",
},
{
"FirstName": "Ropbert",
"LastName": "Jones",
},
{
"FirstName": "hitesh",
"LastName": "prajapti",
}
]
}
var json = { ... };
var key = "foo";
delete json[key]; // Removes json.foo from the dictionary.
Вы можете использовать splice для удаления элементов из массива.
У вас нет запятых в вашем JSON
UPDATE: вам нужно использовать 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.
Вы можете попытаться удалить JSON следующим образом:
var bleh = {first: '1', second: '2', third:'3'}
alert(bleh.first);
delete bleh.first;
alert(bleh.first);
В качестве альтернативы вы также можете передать индекс для удаления атрибута:
delete bleh[1];
Однако, чтобы понять некоторые из последствий использования удалений, посмотрите здесь
Все ответы велики, и он будет делать то, что вы тоже просите, но я считаю, что лучший способ удалить это, и лучший способ для сборщика мусора (если вы используете node.js) - это как это:
var json = { <your_imported_json_here> };
var key = "somekey";
json[key] = null;
delete json[key];
Таким образом сборщик мусора для 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);
Как описано @mplungjan, я был прав. Затем я сразу же нажимаю кнопку повышения скорости. Но, следуя этому, я, наконец, получил ошибку.
<script>
var data = {"result":[
{"FirstName":"Test1","LastName":"User","Email":"[email protected]","City":"ahmedabad","State":"sk","Country":"canada","Status":"False","iUserID":"23"},
{"FirstName":"user","LastName":"user","Email":"[email protected]","City":"ahmedabad","State":"Gujarat","Country":"India","Status":"True","iUserID":"41"},
{"FirstName":"Ropbert","LastName":"Jones","Email":"[email protected]","City":"NewYork","State":"gfg","Country":"fgdfgdfg","Status":"True","iUserID":"48"},
{"FirstName":"hitesh","LastName":"prajapti","Email":"[email protected]","City":"","State":"","Country":"","Status":"True","iUserID":"78"}
]
}
alert(data.result)
delete data.result[3]
alert(data.result)
</script>
Удалить - это просто удалить данные, но "место" все еще существует как undefined.
Я сделал это, и он работает как шарм:
data.result.splice(2,1);
Значение: удалить 1 элемент в позиции 3 (потому что массив подсчитывается в форме 0, тогда элемент без 3 считается как 2)
Я рекомендую метод 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)
попробуйте это
json = $.grep(newcurrPayment.paymentTypeInsert, function (el, idx) { return el.FirstName == "Test1" }, true)