I have an object like this:

obj = {"arr1" : [], "arr2" : ['z1', 'z2', 'z3'], "arr3" : []};
obj['arr2']['z2'] = 'z8';

It has nested arrays, and each value of can be an object with or without arrays, etc.

How to get a JSON for that? JSON.stringify would lose 'z8' value.

share|improve this question

5  
Your object is invalid: arr2 should be an object, not an array. – VisioN 17 mins ago
1  
Have you tried to execute this code? The first line isn't even valid JavaScript. – James McLaughlin 16 mins ago
To elaborate on @VisioN's comment: In JavaScript, Objects always have a combination of key:value, Arrays never do. – Cerbrus 15 mins ago
Fixed the object – Lapa 30 secs ago
feedback

2 Answers

In JSON (by standard) you have Arrays, Objects, values and strings, arrays are not Objects like in JavaScript. JSON is only a data-interchange format, you don't have a base prototype like in JavaScript where almost everything is an object and have properties.

So, if you want to have a property z3 of z2 you have to make z2 an object.

share|improve this answer
feedback

arr2 is an array. You cannot use it like a map.

var obj = {"arr1" : [], "arr2" : ['z1', {'z2':'z3'}], "arr3" : []};
obj['arr2'][1]["z2"] = 'z8';
alert(JSON.stringify(obj));​

Fiddle

share|improve this answer
feedback

Your Answer

 
or
required, but never shown
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.