JSON.parse到一个对象数组

时间:2012-01-21 20:08:07

标签: javascript json parsing

我遇到的困难时期应该是(并且可能是)非常基本的东西。我有一个构造函数如下:

function search_table(v1, v2, v3) {
    this.field = v1;
    this.condition = v2;
    this.value = v3;
}

我的应用程序有一个search_table数组,它获取JSON.stringify(ied),然后存储在localStorage中。

我的问题是......当我从localStorage检索对象时,它是JSON字符串格式。如何将其恢复为search_table []格式?

如果可能的话,我更愿意在没有jQuery的情况下这样做。感谢

我尝试过使用以下内容:

var search_array = JSON.parse(string_val);

但它不允许我以search_array[i].condition为例。

1 个答案:

答案 0 :(得分:2)

这应该有效。以下代码:

function search_table(v1, v2, v3) {
    this.field = v1;
    this.condition = v2;
    this.value = v3;
}
var arr = [new search_table(1, 2, 3), new search_table(4, 5, 6), new search_table(7, 8, 9)];

var str = JSON.stringify(arr);
console.log("stingified: ", str);

var search_array = JSON.parse(str);
var result = search_array[1].condition;
console.log("result: ", result);

提供以下输出:

stingified: [{"field":1,"condition":2,"value":3},{"field":4,"condition":5,"value":6},{"field":7,"condition":8,"value":9}]
result: 5

您的问题出现在代码的其他地方,但您未在此处提及。

我还会检查Travis的建议 - 您的浏览器是否支持JSON功能?试试这些,并确保它们不会返回“undefined”:

alert(JSON.stringify);
alert(JSON.parse);

另外,请确保您已初始化i,并确保它是您阵列的入口。