使用JSON

时间:2017-02-27 04:23:48

标签: javascript json

我制作了一些测试代码,但它并没有按照我想要的方式工作。

我推送localstorage上的数据,并从localstorag e获取数据。之后,我更改了数据的值,并在localsorage上推送并添加数据。然后,我检查了数据,我试图获取具有JSON.parse功能的数据。但是,它没有用。

此处a code

var temp1 = {
  'temp1': true,
  'test1': true
};

var temp2 = {
  'temp2': true,
  'test2': true
};

var temp3 = [];
temp3.push(temp1);
localStorage.setItem("testing", JSON.stringify(temp3));

var temp4 = localStorage.getItem("testing");
var temp5 = JSON.parse(temp4);
for(var i=0; i<temp5.length; i++)
{
    temp5[i].temp1 = false;
}
temp3.push(temp5);

localStorage.setItem("testing", JSON.stringify(temp3));
var temp6 = localStorage.getItem("testing"));
var temp7 = JSON.parse(temp6);
for(var j=0; j<temp7.length; i++)
{
    temp7[i].test1 = false;
}
temp3.push(temp7);
localStorage.setItem("testing", JSON.stringify(temp3));

3 个答案:

答案 0 :(得分:1)

由于si2zle有一些小的语法错误,但主要问题是,当您将temp5temp7推送到temp3时,实际上是在推动新的数组而不是单个元素。

您需要将每个单独的元素推送到for循环内的temp3,如此

for(var i=0; i<temp5.length; i++)
{
    temp5[i].temp1 = false;
    temp3.push(temp5[i]);
}

答案 1 :(得分:0)

以下代码出错:

for(var j=0; j<temp7.length; i++)
{
    temp7[i].test1 = false;
}

是j ++而不是i ++和temp7 [j] .test1 = false;不是temp7 [i]

答案 2 :(得分:0)

还有一个额外的&#39;)&#39; at var temp6 = localStorage.getItem(&#34; testing&#34;));     同时,&#34; temp3.push(temp5);&#34;它将数组推入数组中     像这样:[{&#34; temp1&#34;:true,&#34; test1&#34;:true},[{&#34; temp1&#34;:false,&#34; test1&#34;:真}]]

which creates problem while parsing in the for loop.

for(var j=0; j<temp7.length; i++)
{
    temp7[i].test1 = false;
}

希望这会有所帮助:)