如何对一组对象进行字符串化?

时间:2016-07-08 05:35:35

标签: javascript jquery arrays json object

我创建了一个对象数组,需要存储并保存到另一个页面。

对象数组与此类似:

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

相同

Session Storage

<小时/> 编辑3: @Rayon要求一个小提琴,这样他就可以看看,我做了它并且它有效。问题是 - 我现在感觉很愚蠢 - 我正在调用数组而不是我做过的字符串化变量。

3 个答案:

答案 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);

现在可以正常显示。