【发布时间】:2014-08-16 02:42:25
【问题描述】:
我有以下 JSON:
{
"firstArrayOfJSON": [
{
"something" : "something"
},
{
"another" : "another"
},
{
"secondArrayOfJson" : [
{
"something" : "something",
"other" : "other"
}
]
}
]
}
在变量监视(谷歌浏览器)上,在任何处理之前,对象显示为:
[0]: Object
something : "something"
another : "another"
secondArrayOfJson : Object
[0]: something : "something",
[1]: other : "other"
还有下面的 JQuery ajax:
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: "json"
});
在服务器(Express JS)上,我有一个测试服务,它只是吐出请求正文。然后我继续检查客户端的响应。
反应变了:
第一级数组显示为:
[0]: Object
something : "something"
another : "another"
secondArrayOfJson : Object
[0][something] : "something",
[1][other] : "other"
我仍然可以正常使用对象:firstArrayOfJson[2].secondArrayofJson[0].something
我已经在 Mongo 服务器上测试过存储,数组元素看起来确实像 [0][something] (Robomongo)
当我向secondArrayOfJson 添加另一个对象时,“问题”消失了。
因此,除非这是在 Google Chrome 和 Robomongo 上都发生的查看器问题,否则这确实是传递对象的方式。
我想知道这是否有合理的原因,或者我是否应该担心我正在做的任何事情。
【问题讨论】:
-
可能与 jQuery 如何序列化您发送到服务器的数据以及您的服务器如何处理它有关。例如。
{foo: [1, 2]}变成foo[0]=1&foo[1]=2。
标签: javascript jquery arrays ajax json