无法将JavaScript变量与JSON数据进行比较

时间:2013-12-04 05:35:14

标签: javascript json html5 local-storage object-comparison

我将表格存储为 localstorage 中的JSON数据中的字符串。我想将此处存储的字段之一与单独的javascript变量进行比较。

以下是我的尝试:

var goalsStr = localStorage.getItem("goals");
var goalsObj = JSON.parse(goalsStr); 
for (i=0; i<goalsObj.goals.length; i++) {
  if (goal==goalsObj.goals[i].goal) {
    //.....
    //.....
  }
}

但它不起作用。在遇到一些问题后,我认为问题在于比较(goal == goalsObj.goals[i].goal)

这是实际存储在localStorage中“目标”内的值:

var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals",data);

这是一个存储在其中的对象数组。

所有这些'diff','duedate'都是从用户那里获取的HTML表单数据。

怎么了?我该怎么办?

1 个答案:

答案 0 :(得分:0)

数据似乎已经是有效的JSON。你为什么要字符串呢?我想你想做的只是

var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals", data);

然后当您将该值拉回时,通过

将其转换为JavaScript对象
var obj = JSON.parse(localStorage.getItem("goals"));