Удалить элемент json
Я хочу удалить элемент JSON или одну целую строку из JSON.
У меня есть следующая строка JSON:
{
"result":[
{
"FirstName": "Test1",
"LastName": "User",
},
{
"FirstName": "user",
"LastName": "user",
},
{
"FirstName": "Ropbert",
"LastName": "Jones",
},
{
"FirstName": "hitesh",
"LastName": "prajapti",
}
]
}
8 ответов:
var json = { ... }; var key = "foo"; delete json[key]; // Removes json.foo from the dictionary.
можно использовать соединение для удаления элементов из массива.
в вашем JSON нет конечных запятых
обновление: вы должны использовать массив.сращивание и не удалить если вы хотите удалить элементы из массива в объект
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];
однако, чтобы понять некоторые последствия использования удалений, посмотрите здесь
- исправьте ошибки в JSON:http://jsonlint.com/
- разбор JSON (так как вы отметили вопрос с помощью JavaScript, используйте json2.js)
- удалить свойство из объекта, который вы создали
- Stringify объект обратно в JSON.
все ответы велики, и он будет делать то, что вы спросите его тоже, но я считаю, что лучший способ удалить это, и лучший способ для сборщика мусора (если вы используете узел.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, я, хотя это было правильно. Затем сразу же я нажимаю кнопку up rate. Но, следуя ему, я, наконец, получил ошибку.
<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>
удалить - это просто удалить данные, но "место" все еще там, как неопределено.
Я сделал это, и это работает как шарм :
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)