将localStorage与javascript对象和/或数组和/或对象数组一起使用

将localStorage与javascript对象和/或数组和/或对象数组一起使用,javascript,arrays,json,Javascript,Arrays,Json,我的应用程序使用数组存储“朋友”信息: var friends = new Array(); 每个“朋友”项都有一个名称、颜色和作为JSON对象存储的条目列表 以最原始的形式,我这样做: friends[0] = '{"name":"Fred","color":"rgb(255, 0, 0)","entries":"[{"time":"xxxx","desc":"Party"},{"time":"yyyy","desc":"Shopping"},{"time":"zzzz","desc":"D

我的应用程序使用数组存储“朋友”信息:

var friends = new Array();
每个“朋友”项都有一个名称、颜色和作为JSON对象存储的条目列表

以最原始的形式,我这样做:

friends[0] = '{"name":"Fred","color":"rgb(255, 0, 0)","entries":"[{"time":"xxxx","desc":"Party"},{"time":"yyyy","desc":"Shopping"},{"time":"zzzz","desc":"Dinner"}]}';
friends[1] = '{"name":"George","color":"rgb(0, 255, 0)","entries":"[{"time":"qqqq","desc":"Car Pool"},{"time":"vvvv","desc":"Spa Treatment"},{"time":"wwww","desc":"Shopping"}]}';
编辑:

我还尝试了在JSON周围不使用“”的情况下使用它,如下所示:

friends[0] = {"name":"Fred","color":"rgb(255, 0, 0)","entries":"[{"time":"xxxx","desc":"Party"},{"time":"yyyy","desc":"Shopping"},{"time":"zzzz","desc":"Dinner"}]};
friends[1] = {"name":"George","color":"rgb(0, 255, 0)","entries":"[{"time":"qqqq","desc":"Car Pool"},{"time":"vvvv","desc":"Spa Treatment"},{"time":"wwww","desc":"Shopping"}]};
访问好友[0]。名称、好友[0]。颜色等。值时没有问题

我使用此命令将好友数组存储在localStorage中:

setItem(“allFriendInfo”,JSON.stringify(friends))

在Chrome Developer Tools“Resources”中检查后,我看到字符串存储为:

[{"name":"Fred","color":"rgb(255, 0, 0)","entries":"[{\"time\":\"xxxx\",\"desc\":\"Party\"},{\"time\":\"yyyy\",\"desc\":\"Shopping\"},{\"time\":\"zzzz\",\"desc\":\"Dinner\"}]"},{"name":"George","color":"rgb(0, 255, 0)","entries":":"[{\"time\":\"qqqq\",\"desc\":\"Car Pool\"},{\"time\":\"vvvv\",\"desc\":\"Spa Treatment\"},{\"time\":\"wwww\",\"desc":\"Shopping\"}]"}]
我用JSON.parse从本地存储中读到:

friends = JSON.parse(localStorage.getItem("allFriendInfo"));
我可以使用“friend[0]”访问存储的数据,它在警报中显示如下:

friends[0] = {"name":"Fred","color":"rgb(255, 0, 0)","entries":"[{"time":"xxxx","desc":"Party"},{"time":"yyyy","desc":"Shopping"},{"time":"zzzz","desc":"Dinner"}]"}

返回一个值,该值等于数组中的项数

但是我不能得到

friends[0].name
返回“name”属性的值,但无法处理对象中的“条目”列表

编辑:删除引号后,我可以获得friends[0].name等值,但无法从friends[0].entries.time或类似值中获得任何乐趣


提前感谢所有能够帮助这个新手的“真正”程序员。

向我们展示更多,特别是保存和加载的部分。如果您在保存前进行字符串化,并在加载后进行分析,则应将对象收回。您是否尝试将
友元[0]
分配给变量?欢迎使用堆栈溢出,请使用。是的,我尝试将友元[0]分配给名为“obj”的变量,然后尝试“obj.name”仍然没有。为什么要将JSON字符串分配给
friends
元素?删除
,您将分配更易于管理的真实对象。
friends[0].name