【发布时间】:2013-07-16 11:47:41
【问题描述】:
我正在查询远程服务器并收到 json 响应。响应的格式取决于响应中对象的数量。如果有一个对象,它看起来类似于:
"results": {
"meeting": {
"location": "Location A",
"time": "1378033200"
}
}
但如果响应中有多个对象,我会得到一组对象:
"results": {
"meeting": [
{
"location": "Location A",
"time": "1378033200"
},
{
"location": "Location B",
"time": "1379250000"
}
]
}
来自服务器的完整响应包含一个“count”变量,因此我可以区分这两种情况。在我的 Javascript 中,我首先检查计数,如果恰好有一个对象,我会读出类似于以下内容的位置和时间信息:
var location = results.meeting.location;
var time = results.meeting.time;
如果除了一个对象之外还有其他东西,我会这样做
for(var i=0; i<count; i++) {
var location = results.meeting[i].location;
var time = results.meeting[i].time;
}
这可行,但我想知道是否有更优雅的方式来处理这两种情况?
【问题讨论】:
-
你能改变 JSON 响应吗?那将是最优雅的方式。
-
是的,你的解析代码没问题。我会将 JSON 更改为始终是一个数组。
-
我同意@YotamOmer。
meeting应该始终是一个数组,即使其中只有一个甚至零个项目。这将为您省去很多麻烦,因为您不必区分两种可能性。这也是更一致的方式。 -
感谢您的意见 - 我同意,但很遗憾我无法更改回复。
标签: javascript jquery arrays json object