Arrays sollten nur Einträge mit numerischen Schlüsseln haben (Arrays sind auch Objekte, aber Sie sollten diese wirklich nicht mischen).
Wenn Sie ein Array in JSON konvertieren, berücksichtigt der Prozess nur numerische Eigenschaften. Andere Eigenschaften werden einfach ignoriert und deshalb erhalten Sie als Ergebnis ein leeres Array. Vielleicht ist dies offensichtlicher, wenn Sie sich length
das Array ansehen :
> AssocArray.length
0
Was oft als "assoziatives Array" bezeichnet wird, ist in JS eigentlich nur ein Objekt:
var AssocArray = {};
AssocArray["a"] = "The letter A"
console.log("a = " + AssocArray["a"]);
JSON.stringify(AssocArray);
Auf Eigenschaften von Objekten kann über die Array- oder Punktnotation zugegriffen werden (wenn der Schlüssel kein reserviertes Schlüsselwort ist). Also AssocArray.a
ist das gleiche wie AssocArray['a']
.
Json.stringify
ignoriert Nicht-Array-Eigenschaften von Arrays.