我创建了一个对象数组,需要存储并保存到另一个页面。
对象数组与此类似:
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]
那么如何在这个数组中对这些对象进行字符串化。
修改 然后将此对象数组传递给类似于此的单击函数:
$("#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要求一个小提琴,这样他就可以看看,我做了它并且它有效。问题是 - 我现在感觉很愚蠢 - 我正在调用数组而不是我做过的字符串化变量。
答案 0 :(得分:1)
使用
中的(逗号)更新JSON name: "Blue Stilton",
age: "13",
smelly: true
var cheese_array = [
{
name: "Chedder",
age: "34",
smelly: true
},
{
name: "Brie",
age: "4",
smelly: false
},
{
name: "Blue Stilton",
age: "13",
smelly: true
}
];
var details = JSON.stringify(cheese_array);
alert(details);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:1)
您的对象错过了逗号,如下所示:
name: "Blue Stilton",
age: "13"//comma is missing here
smelly: true
JSON.stringify工作正常,如下所示。
var cheese_array = [
{
name: "Chedder",
age: "34",
smelly: true
},
{
name: "Brie",
age: "4",
smelly: false
},
{
name: "Blue Stilton",
age: "13",
smelly: true
}
];
console.log(JSON.stringify(cheese_array))
但是我不知道你是如何得到一个log [object Object],[object Object],[object Object] 我假设你是控制台记录其他东西请在你的代码中检查。
答案 2 :(得分:1)
您在第3个对象中遗失了,
,年龄后:
var cheese_array = [
{
name: "Chedder",
age: "34",
smelly: true
},
{
name: "Brie",
age: "4",
smelly: false
},
{
name: "Blue Stilton",
age: "13",
smelly: true
}
];
var jsonObj = JSON.stringify(cheese_array);
现在可以正常显示。