json对象与对象数组

Tom*_*Tom 3 javascript arrays jquery json object

我正在查询远程服务器并收到json响应.响应的格式取决于响应中的对象数.如果有一个对象,它看起来类似于:

"results": {
  "meeting": {
    "location": "Location A",
    "time": "1378033200"
  }
}
Run Code Online (Sandbox Code Playgroud)

但是如果响应中有多个对象,我会得到一个对象数组:

"results": {
  "meeting": [
    {
      "location": "Location A",
      "time": "1378033200"
    },
    {
      "location": "Location B",
      "time": "1379250000"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

来自服务器的完整响应包括"计数"变量,因此我可以区分这两种情况.在我的Javascript中,我首先检查计数,如果只有一个对象,我会读出类似于的位置和时间信息:

var location = results.meeting.location;
var time = results.meeting.time;
Run Code Online (Sandbox Code Playgroud)

如果除了一个对象之外还有其他任何东西,我会这样做

for(var i=0; i<count; i++) {
  var location = results.meeting[i].location;
  var time = results.meeting[i].time;
}
Run Code Online (Sandbox Code Playgroud)

这有效,但我想知道是否有更优雅的方式处理这两种情况?

Sar*_*ath 5

总是可以将它作为数组循环,

if(!(results.meeting instanceof Array)){
   results.meeting = [results.meeting];
} 
Run Code Online (Sandbox Code Playgroud)

因此,如果一个数组包含一个数据,您将始终获得一个数组

所以以及永远

var count = results.meeting.length;
for(var i=0; i<count; i++) {
  var location = results.meeting[i].location;
  var time = results.meeting[i].time;
}
Run Code Online (Sandbox Code Playgroud)