在jquery和javascript中删除json数组中的所有元素
我正在研究一种方法,可以擦除“Bottin”中的所有数组内容。 数据存储在计算机的本地存储器中,以一个名为“data”的键存储 以下是我的Json示例:在jquery和javascript中删除json数组中的所有元素,jquery,arrays,json,Jquery,Arrays,Json,我正在研究一种方法,可以擦除“Bottin”中的所有数组内容。 数据存储在计算机的本地存储器中,以一个名为“data”的键存储 以下是我的Json示例: { "descriptions": [ { "Fabricant": "Test", "Produit": "Test", "Prix": "11.11", "Details": " asdfasd",
{
"descriptions": [
{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
},{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
},{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
}
],
"Bottin": [
{
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
}, {
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
},{
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
}
],
"users": {
"admin": "Inf2005"
}
}
以下是我的部分解决方案:
function delAllBottin() {
bd = localStorage.getItem('data');
var descJsonObjects = bd.Bottin;
bd.Bottin.splice(0, descJsonObjects.length);
}
现在似乎不起作用,我不知道这里缺少什么…1将localStorage中的字符串解析为JSON 2删除不需要的项目(使用slice()) 3将JSON转换为字符串 4在本地存储中重新设置它
var items = JSON.parse(localStorage.getItem("data")); // updated
for (var i =0; i< items.length; i++) {
var items = JSON.parse(items[i]);
items.splice(i, 1);
}
item = JSON.stringify(items);
localStorage.setItem("data", items);
var items=JSON.parse(localStorage.getItem(“数据”);//更新
对于(变量i=0;i
无法获取/设置对象作为localStorage
/sessionStorage
的值。您需要在设置之前将其设置为JSON字符串,并在从存储中获取JSON后对其进行解析
设置时
var data = {.....}; //Build your data object
localStorage.setItem('data', JSON.stringify(data));
var jsonData = localStorage.getItem('data');
var data = JSON.parse(jsonData);
//If you want to do any modification, do it now
//then set it back to the storage
localStorage.setItem('data', JSON.stringify(data));
获取(和编辑)时
首先,以字符串格式存储json对象,如下所示:
var data = {
"descriptions": [
{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
},{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
},{
"Fabricant": "Test",
"Produit": "Test",
"Prix": "11.11",
"Details": " asdfasd",
"Categorie": "Categorie_Baseball",
"Images": "Hockey_Article_01.jpg"
}
],
"Bottin": [
{
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
}, {
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
},{
"Nom": "Andy",
"Prenom": "Matador",
"Fonction": "dtesasd",
"Courriel": "cyd@vde.ca",
"Telephone": "515-555-5555"
}
],
"users": {
"admin": "Inf2005"
}
}
localStorage.setItem("data", JSON.stringify(data));
现在,要从中清除Bottin
array,请执行以下操作:
var data = JSON.parse(localStorage.getItem("data"));
data.Bottin = []; // array cleared
现在,再次保存它:
localStorage.setItem("data", JSON.stringify(data));
我认为删除后,您应该将更新后的数据再次保存在localStorage中。您所说的“不工作”是什么意思?它显示了错误或者只是没有移除物品?@NeerajVerma:很好!让我明天早上测试一下。我会随时通知你的。我想我太累了。@TareqMahmood:没有错,只是什么也没拿走。你试过我的答案吗?我不认为这是OP的问题。这可能与本地存储简单解决方案中对象的持久性有关!Gona在不使用for()的情况下节省一些CPU使用量!非常感谢。