我遇到的困难时期应该是(并且可能是)非常基本的东西。我有一个构造函数如下:
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
为例。
答案 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
,并确保它是您阵列的入口。