我看了很多例子,我似乎无法弄清楚我在做错了什么:
var names_Array = [];
var names_List = new WinJS.Binding.List(names_Array);
names_List.push({ name: "Joe Dowling", image: "image/Joe Dowling.png", ClientID: "1234" });
window.localStorage.setItem('names_Array', JSON.stringify(names_Array));
var test = JSON.parse(window.localStorage.getItem('names_Array'));
console.log(test.name);
我在控制台中未定义,为什么会这样?
答案 0 :(得分:1)
你有两个错误:
1)您刚刚初始化了names_Array
并且没有添加任何元素。您将该空数组存储在localStorage中。
2)由于test
是一个对象数组(如果要将对象推入其中),则必须通过索引访问一个特定对象,或者循环遍历数组以获取成员。
此代码应该有效:
var names_Array = [];
var names_List = new WinJS.Binding.List(names_Array);
names_List.push({ name: "Joe Dowling", image: "image/Joe Dowling.png", ClientID: "1234" });
window.localStorage.setItem('names_Array', JSON.stringify(names_List));
var test = JSON.parse(window.localStorage.getItem('names_Array'));
for( i in test ) console.log(test[i].name);
答案 1 :(得分:0)
window.localStorage.setItem(
'names_Array',
JSON.stringify(['John Doe', 'Jane Doe'])
);
console.log(JSON.parse(window.localStorage.getItem('names_Array')));
打印
["John Doe", "Jane Doe"]
也许test.name
阻碍了?