JSON.stringify 多维

JSON.stringify multidimensional

我正在尝试使用 JSON.stringify 将 javascript 对象发送到 PHP,但我找不到解决方案。这是我所拥有的示例:

var small_array = [],
    final_array = [];

small_array["ok"] = "ok";
small_array["not_ok"] = "not_ok";

final_array.push(small_array);

console.log(JSON.stringify(final_array));

输出为“[[]]”

有这方面的指导吗?谢谢

javascript中没有关联数组。它们被称为对象:

const smallObject = {
   ok: "not ok",
   not_ok: "ok"
};

const finalArray = [smallObject];

console.log(JSON.stringify(finalArray));

您正在向数组添加非数组条目属性。这在 JavaScript 中很好,但是 JSON 在数组中没有非数组条目属性的概念(JSON 数组只是有序序列,而在 JavaScript 中数组是成熟的对象,可以对某些类型的属性进行特殊处理——更多内容在我的 [古老] 博客 post A Myth of Arrays).

对于那些 属性 名称(键),您需要一个普通对象,而不是数组:

var obj         = {}, // Note {}, not []
    final_array = [];

obj["ok"] = "ok";
obj["not_ok"] = "not_ok";

final_array.push(obj);

console.log(JSON.stringify(final_array));

javascript 中的对象是这样定义的 var obj = {}

var small_array = {},
final_array = {};

small_array["ok"] = "ok";
small_array["not_ok"] = "not_ok";

final_array = (small_array);

console.log(JSON.stringify(final_array));
VM1623:9 {"ok":"ok","not_ok":"not_ok"}