如何将JavaScript关联数组转换为JSON?
我尝试了以下方法:
var AssocArray = new Array(); AssocArray["a"] = "The letter A" console.log("a = " + AssocArray["a"]); // result: "a = The letter A" JSON.stringify(AssocArray); // result: "[]"
数组应仅包含带有数字键的条目(数组也是对象,但您实际上不应混用)。
如果将数组转换为JSON,则该过程将仅考虑数值属性。其他属性只是被忽略,这就是为什么您得到一个空数组的原因。如果您看一下length数组的,也许这更加明显:
length
> AssocArray.length 0
通常被称为“关联数组”的实际上只是JS中的一个对象:
var AssocArray = {}; // <- initialize an object, not an array AssocArray["a"] = "The letter A" console.log("a = " + AssocArray["a"]); // "a = The letter A" JSON.stringify(AssocArray); // "{"a":"The letter A"}"
可以通过数组符号或点符号(如果键不是保留关键字)访问对象的属性。因此AssocArray.a与相同AssocArray['a']。
AssocArray.a
AssocArray['a']