psychotik
psychotik

Reputation: 39019

Javascript array indexed by strings can't be converted to JSON using JSON.stringify?

I've been trying to stringify a javascript array which is keyed by strings. JSON always stringifies the array as empty ([]).

var arr = new Array(3);
arr['A'] = "Foo";
arr['B'] = "Bar";
arr['C'] = "Baz";

var str = JSON.stringify(arr);

If I replace the 'A', 'B', 'C' with 0,1,2 then the array is stringified correctly. I'm sure I'm missing something, just not sure what.

Thanks!

Upvotes: 0

Views: 288

Answers (2)

Duncan Beevers
Duncan Beevers

Reputation: 1820

You want an Object, not an Array.

JSON.stringify({
  "A": "Foo",
  "B": "Bar",
  "C": "Baz"
});

Upvotes: 0

Eldar Djafarov
Eldar Djafarov

Reputation: 24667

You cant have keys as strings in array, use object for this {}.

var obj = {};
obj['A'] = "Foo";
obj['B'] = "Bar";
obj['C'] = "Baz";

var str = JSON.stringify(obj);

Upvotes: 2

Related Questions