Масиви повинні мати записи лише з цифровими клавішами (масиви - це також об’єкти, але ви насправді не повинні їх змішувати).
Якщо перетворити масив у JSON, процес враховуватиме лише числові властивості. Інші властивості просто ігноруються, і тому в результаті ви отримуєте порожній масив. Можливо, це більш очевидно, якщо поглянути на length
масив:
> AssocArray.length
0
Те, що часто називають "асоціативним масивом", насправді є просто об'єктом у JS:
var AssocArray = {};
AssocArray["a"] = "The letter A"
console.log("a = " + AssocArray["a"]);
JSON.stringify(AssocArray);
До властивостей об’єктів можна отримати доступ через нотацію масиву або крапку (якщо ключ не є зарезервованим ключовим словом). Таким чином, AssocArray.a
це те саме, що AssocArray['a']
.
Json.stringify
ігнорує властивості масивів, що не є масивами.