【问题标题】:JSON.stringify multidimensional [duplicate]JSON.stringify 多维
【发布时间】:2018-11-24 08:53:22
【问题描述】:
我正在尝试使用 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
jquery
stringify
【解决方案1】:
javascript 中没有关联数组。它们被称为对象:
const smallObject = {
ok: "not ok",
not_ok: "ok"
};
const finalArray = [smallObject];
console.log(JSON.stringify(finalArray));
【解决方案2】:
您正在向数组添加非数组条目属性。这在 JavaScript 中很好,但 JSON 没有数组中非数组条目属性的概念(JSON 数组只是有序序列,而在 JavaScript 中,数组是成熟的对象,可为某些类型的属性提供特殊处理——更多内容请参阅我的 [古代] 博文 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));
【解决方案3】:
javacript 中的对象是这样定义的 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"}