json - JavaScript map containing arrays turns into map containing maps -
i creating map containing arrays. i'm sending map parameter method in popup window.
this map of arrays turning map of maps in popup window!!
im using ie8.
i'm creating map this:
var mapdetails = new object(); mapdetails.fields = ['a','b']; mapdetails.optsampledata = ['x','y'];
json of map im sending:
{'fields':['a','b'],'optsampledata':['x','y']}
json of map im receiving:
{'fields':{'0':'a','1':'b'},'optsampledata':{'0':'x','1':'y'}}
this wouldnt problem in js data can still accessed fields[0]. but, i'm sending server-side i'm using gson parse json. gson turns map.
try function
function myparser(str) { str = str.replace(/'/g, '"'); var obj = json.parse(str); for(var item in obj) { if(obj.hasownproperty(item)) { var array = []; for(var arritem in obj[item]) { if(obj[item].hasownproperty(arritem)) { array.push(obj[item][arritem]); } } obj[item] = array; } } return obj; }
you can pass received string function , receive desired map containing arrays
also can reform received string desired string format function:
var str = "{'fields':{'0':'a','1':'b'},'optsampledata':{'0':'x','1':'y'}}"; var obj = myparser(str); var desiredformat = json.stringify(obj); /* result be: */ /* "{"fields":["a","b"],"optsampledata":["x","y"]}" */
hope helps :)
Comments
Post a Comment