当我尝试将数组数组传递给服务器时,它会给出(在服务器日志上)
1 => [object, object], 2=> [object, object]
使用ajax数据:数据
console.log上的数据显示:
[Object {name="abc", place="us"}, Object {name="pqr", place="jp"}]
实际数组如下:
data.push({name: "abc", place: "us"})
data.push({name: "pqr", place: "jp"})
我想输出为(在服务器上):
Person1 = {name="abc", place="us"}
Person2 = {name="pqr", place="jp"}
我试过jQuery.Serialize它不起作用并尝试将其转换为JSON但在客户端失败。(给出输出[])
我不确定,我哪里出错了。我可以直接将数据阵列发送到服务器吗?
由于 病毒
答案 0 :(得分:2)
JavaScript数组和对象不是一回事。数组具有带数字索引的元素,而对象具有带字符串键名的属性。
你可能想要这样的东西:
var data = {
Person1 : {name:"abc", place:"us"},
Person2 : {name:"pqr", place:"jp"}
};
这会创建一个对象(data
),它具有属性“Person1”和“Person2”,它们本身就是对具有“name”和“place”属性的对象的引用。
或者,将属性添加到对象的数组推送方法的等效方法是:
// create an empty object
var data = {};
// set properties
data["Person1"] = {name:"abc", place:"us"};
data["Person2"] = {name:"pqr", place:"jp"};
// or use dot notation:
data.Person3 = {name:"xyz", place:"au"};
答案 1 :(得分:1)
如果你想尝试,序列化并将数据对象作为JSON传递给服务器端,这里是一个ajax。
var data = {
Person1 : { name:'abc', place:'us'},
Person2 : { name:'pqr', place:'jp'}
}
$.ajax({
type: 'POST',
url: 'url',
data: JSON.stringify(data),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function(msg) {
//success
}
});