【发布时间】:2016-11-10 14:25:55
【问题描述】:
我创建了一个对象数组,需要为另一个页面存储和保留。
对象数组类似这样:
var cheese_array = [
{
name: "Chedder",
age: "34",
smelly: true
},
{
name: "Brie",
age: "4",
smelly: false
},
{
name: "Blue Stilton",
age: "13",
smelly: true
}
];
但是当我JSON.stringify() 它时,它不会对对象进行字符串化,只会对数组进行字符串化。所以我最终得到了一个看起来像这样的数组:
[object Object], [object Object], [object Object]
那么你如何在这个数组中对这些对象进行字符串化。
编辑: 然后将此对象数组传递给类似于以下内容的 on click 函数:
$("#a-button").click(function() {
var cheese_arr_stringify = JSON.stringify(cheese_array);
sessionStorage.cheeseArray = cheese_arr_stringify;
if(sessionStorage.cheeseArray) {
window.location.href = "../";
}
});
差不多,它将cheese_arr_stringify 设置为对象数组的字符串化版本。然后它将这个字符串化代码设置为会话密钥。在此之后,一旦设置了 cheeseArray,它就会将其发送到一个目录。
编辑 2: 这是字符串化后的会话密钥的图像。在这种情况下,foodItems 与 cheeseArray 相同
编辑 3: @Rayon 要了一个小提琴,所以他可以看看,我做了它并且它起作用了。问题是——我现在觉得很愚蠢——我调用的是数组而不是我创建的字符串化 var。
【问题讨论】:
-
JSON.stringify(cheese_array)确实会将整个事情串起来;你怎么确定它不是? -
这不是一个有效的
array -
这里有一些有用的例子:stackoverflow.com/questions/6487699/…
-
您能告诉我们您是如何运行此代码的吗?例如在 Chrome 控制台或 Node.js 中。如果您在控制台中输入,您所显示的显示类似于 Chrome 和 Firefox 显示变量的方式。这是我在输入变量名称并在 chrome 控制台上按 Enter 时得到的。 [>Object, >Object, >Object] 大于号实际上是 Chrome 中的三角形按钮。
-
@PhilipT。是的,我正在使用铬。我正在查看会话存储键,这是字符串化数组在被字符串化后被推送的位置。我将通知并向您展示执行字符串化并推送到会话存储的函数。 编辑:另外,对象不是用三角形显示的,我知道你的意思,但是会话存储只能存储字符串,我将添加会话存储键的图像。
标签: javascript jquery arrays json object