Convert js Array() to JSon object for use with JQuery .ajax

arrays, javascript, jquery, json

Solution

Don't make it an Array if it is not an Array, make it an object:

var saveData = {};
saveData.a = 2;
saveData.c = 1;

// equivalent to...
var saveData = {a: 2, c: 1}

// equivalent to....
var saveData = {};
saveData['a'] = 2;
saveData['c'] = 1;

Doing it the way you are doing it with Arrays is just taking advantage of Javascript's treatment of Arrays and not really the right way of doing it.

Problem

in my app i need to send an javascript Array object to php script via ajax post. Something like this: ``` var saveData = Array(); saveData["a"] = 2; saveData["c"] = 1; alert(saveData); $.ajax({ type: "POST", url: "salvaPreventivo.php", data:saveData, async:true }); ``` Array's indexes are strings and not int, so for this reason something like saveData.join('&') doesn't work. Ideas? Thanks in advance

Original source