Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jquery和javascript中删除json数组中的所有元素_Jquery_Arrays_Json - Fatal编程技术网

在jquery和javascript中删除json数组中的所有元素

在jquery和javascript中删除json数组中的所有元素,jquery,arrays,json,Jquery,Arrays,Json,我正在研究一种方法,可以擦除“Bottin”中的所有数组内容。 数据存储在计算机的本地存储器中,以一个名为“data”的键存储 以下是我的Json示例: { "descriptions": [ { "Fabricant": "Test", "Produit": "Test", "Prix": "11.11", "Details": " asdfasd",

我正在研究一种方法,可以擦除“Bottin”中的所有数组内容。 数据存储在计算机的本地存储器中,以一个名为“data”的键存储

以下是我的Json示例:

{
    "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使用量!非常感谢。