我正在尝试向我的网络应用提交一些JSON,我希望JSON像这样:
{
"thing1" :
{
"something" : "hello"
},
"list_of_things" :
[
{
"item1" : "hello"
},
{
"item2" : "hello"
}
]
}
这里我有一个JSON对象和一个包含JSON对象的JSON数组。当我创建要在Javascript中提交的数据时,我会这样做:
form = {
"thing1" : {
"something" : somethingVariable
},
"list_of_things" : listArray
}
这里'listArray'是Javascript哈希对象的Javascript Array对象。我使用jQuery的ajax方法提交它,但不是javascript数组显示为所需的JSON数组,而是将它转换为一系列JSON对象,如下所示:
{ "1" : { "thing1" : "something" }, "2" : { "thing2" : "something" }...
如何将数组作为数组提交,而不是将数组索引转换为一系列JSON对象?
编辑#1:'listArray'是一个简单的Javascript数组,其定义如下:
var listArray = new Array();
listArray.push({ "thing1" : "something" });
listArray.push({ "thing2" : "something" });
编辑#2:'form'通过以下调用发送到服务器:
$.ajax({
type: 'POST',
url: '/url',
dataType: "json",
data: form,
success: function(data) {
/* success code here */
}
});
答案 0 :(得分:3)
看看here。如果您真的想要发布JSON,则需要发送字符串,而不是对象字面值。您可以在JSON.stringify
上使用form
(or a more supported JSON solution)。
$.ajax({
url: "/url",,
dataType: "json",
type: "POST",
processData: false,
contentType: "application/json",
data: JSON.stringify(form)
});