Массивы должны иметь записи только с цифровыми клавишами (массивы также являются объектами, но вам не следует смешивать их).
Если вы преобразуете массив в 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']
.