如何将对象数组字符串化?

spa*_*cut 8 javascript arrays jquery json object

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

对象数组类似于:

var cheese_array = [
  {
    name: "Chedder",
    age: "34",
    smelly: true
  },
  {
    name: "Brie",
    age: "4",
    smelly: false
  },
  {
    name: "Blue Stilton",
    age: "13",
    smelly: true
  }
 ];
Run Code Online (Sandbox Code Playgroud)

但是当我使用JSON.stringify()它时,它不会对对象进行字符串化,而只会对数组进行字符串化。所以我最终得到了如下所示的数组:

[object Object], [object Object], [object Object]
Run Code Online (Sandbox Code Playgroud)

那么你如何在这个数组中字符串化这些对象。


编辑: 然后将此对象数组传递给类似于以下内容的点击函数:

$("#a-button").click(function() {
  var cheese_arr_stringify = JSON.stringify(cheese_array);
  sessionStorage.cheeseArray = cheese_arr_stringify;
  if(sessionStorage.cheeseArray) {
    window.location.href = "../";
  }
 });
Run Code Online (Sandbox Code Playgroud)

差不多,它设置cheese_arr_stringify为对象数组的字符串化版本。然后它将此字符串化代码设置为会话密钥。在此之后,一旦设置了 cheeseArray,它就会将它发送到一个目录。


编辑 2: 这是字符串化后会话密钥的图像。在这种情况下,foodItems 与 cheeseArray 相同

会话存储


编辑 3: @Rayon 要求拿一把小提琴,以便他可以看看,我编造了它并且它奏效了。问题是 - 我现在觉得很愚蠢 - 我正在调用数组而不是我制作的字符串化变量。

Cyr*_*ian 6

您的对象缺少一个逗号,如下所示:

name: "Blue Stilton",
    age: "13"//comma is missing here
    smelly: true
Run Code Online (Sandbox Code Playgroud)

JSON.stringify 工作正常,如下所示。

name: "Blue Stilton",
    age: "13"//comma is missing here
    smelly: true
Run Code Online (Sandbox Code Playgroud)

但是,我不确定您如何获得日志 [object Object]、[object Object]、[object Object] 我假设您正在控制台记录其他内容,请在您的代码中检查。

  • @Rayon 感谢更新,感谢您为说服这么多回答几乎相同问题的人所做的辛勤工作:)。 (3认同)

Tec*_*lsa 4

使用 ,(逗号)更新 JSON

 name: "Blue Stilton",
    age: "13",
    smelly: true
Run Code Online (Sandbox Code Playgroud)

 name: "Blue Stilton",
    age: "13",
    smelly: true
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud)