我将尝试向我的网络应用程序提交一些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数组对象。我使用jQuery的ajax方法提交它,但是它不会像期望的JSON数组那样显示JavaScript数组,而是将其转换为一系列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 */
}
});
listArray
是什么,它是如何定义的? - Felix Klingform
是一个对象字面量,而不是“JSON对象”...也许我漏掉了什么。 - jondavidjohn