将js Array()转换为JSon对象以与JQuery .ajax一起使用
在我的应用程序中,我需要通过ajax发送一个javascript数组对象到php脚本。 像这样的东西:
var saveData = Array();
saveData["a"] = 2;
saveData["c"] = 1;
alert(saveData);
$.ajax({
type: "POST",
url: "salvaPreventivo.php",
data:saveData,
async:true
});
数组的索引是字符串,而不是int,所以由于这个原因saveData.join('&')不起作用。
想法?
提前致谢
如果它不是数组,则不要将其设为数组,使其成为对象:
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;
这样做与你使用Arrays的方式一样,只是利用了Javascript对数组的处理,而不是真正做到这一点的正确方法。
如果数组已经定义好了,你可以通过遍历数组的元素来创建一个json对象,然后你可以发布到服务器上,但是如果你是按照上面的情况创建数组,那么只需创建一个json对象,而不是由Paolo Bergantino夺权
var saveData = Array();
saveData["a"] = 2;
saveData["c"] = 1;
//creating a json object
var jObject={};
for(i in saveData)
{
jObject[i] = saveData[i];
}
//Stringify this object and send it to the server
jObject= YAHOO.lang.JSON.stringify(jObject);
$.ajax({
type:'post',
cache:false,
url:"salvaPreventivo.php",
data:{jObject: jObject}
});
// reading the data at the server
<?php
$data = json_decode($_POST['jObject'], true);
print_r($data);
?>
//for jObject= YAHOO.lang.JSON.stringify(jObject); to work,
//include the follwing files
//<!-- Dependencies -->
//<script src="http://yui.yahooapis.com/2.9.0/build/yahoo/yahoo-min.js"></script>
//<!-- Source file -->
//<script src="http://yui.yahooapis.com/2.9.0/build/json/json-min.js"></script>
希望这可以帮助
您可以迭代saveData对象的键/值对来构建对的数组,然后在结果数组上使用join(“&”):
var a = [];
for (key in saveData) {
a.push(key+"="+saveData[key]);
}
var serialized = a.join("&") // a=2&c=1
链接地址: http://www.djcxy.com/p/46347.html
上一篇: Convert js Array() to JSon object for use with JQuery .ajax
下一篇: What is the best way to remove a table row with jQuery?