javascript - json 对象与对象数组

标签 javascript jquery arrays json object

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

"results": {
  "meeting": {
    "location": "Location A",
    "time": "1378033200"
  }
}

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

"results": {
  "meeting": [
    {
      "location": "Location A",
      "time": "1378033200"
    },
    {
      "location": "Location B",
      "time": "1379250000"
    }
  ]
}

来自服务器的完整响应包括一个“计数”变量,因此我可以区分这两种情况。在我的 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;
}

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

最佳答案

你总是可以把它作为一个数组循环,

if(!(results.meeting instanceof Array)){
   results.meeting = [results.meeting];
} 

所以你总是会得到一个数组,如果一个数组只有一个数据

一直如此

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

关于javascript - json 对象与对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17675729/

相关文章:

javascript - 无法在短时间内加载属性 - 导致错误

javascript - 有没有办法从光滑的网格访问插件?

javascript - Highcharts 无法破坏标签

javascript - 使用ajax请求显示进度条进度

arrays - Swift:如何正确地将字符串值与多个值进行比较

JavaScript:检查列表中的元素

javascript - 如何在更改和页面加载时获取选项值?

javascript - 访问通过社交注册创建的用户文档

jquery:如何通过 .click() 删除处理程序设置?

python - 定义 Numpy 数组并在单行中赋值