我正在尝试将数组存储在localStorage(HTML5)中,该数组需要是一个字符串,但是通过定义索引,可以直接访问我存储在数组中的对象。当我尝试JSON.stringify时,我只得到[],它不会在localStorage中存储对象数组。
var mylist = [];
mylist["mykey1"] = {id: "1", title: "First"};
mylist["mykey2"] = {id: "2", title: "Second"};
localStorage.setItem("mylist", JSON.stringify(mylist)); // stores [] only - uggh!
var mylist2 = JSON.parse(localStorage.getItem("mylist"));
document.write(JSON.stringify(mylist2["mykey1"])); // want it to display: {"id": "1", "title": "First"}
答案 0 :(得分:1)
我想我只是通过将mylist var从[]数组更改为{} object来解决它。
var mylist = {};
答案 1 :(得分:1)
您已经创建了数组,并且您尝试使用它像关联数组或地图
当您输入
时,实际发生的是什么mylist["mykey1"] = {id: "1", title: "First"}
它试图在索引“mykey1”中获取列表元素,其中被JSON解析器忽略。这可能是因为它无法确定mykey1
列表中的整数索引,或者它转换为数字太大。
你会注意到,如果你这样做:
mylist[1] = {id: "1", title: "First"}
您的JSON字符串将为"[null,{id: "1", title: "First"}]"
,因为您尚未指定0th index
元素,但您已设置1st index
元素。
答案 2 :(得分:0)