一尘不染

JavaScript关联数组到JSON

javascript

如何将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: "[]"

阅读 393

收藏
2020-05-01

共1个答案

一尘不染

数组应仅包含带有数字键的条目(数组也是对象,但您实际上不应混用)。

如果将数组转换为JSON,则该过程将仅考虑数值属性。其他属性只是被忽略,这就是为什么您得到一个空数组的原因。如果您看一下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']

2020-05-01