AJAX调用返回ARRAY或单个OBJECT导致错误

Tim*_*son -1 javascript ajax

Javascript真的不是我的力量,事实上我对它很可怕,所以刚刚开始掌握它.

我使用GET对API进行了AJAX调用.API返回标准JSON.

如果我没有提供ID,我的回复就是所有记录.如果我提供ID,我会收到一个单一记录响应.这是对的.

这是我的代码:

    $.ajax({
      url: apiURL,
      dataType: "json",
      type: "Get",
      success: function (data) {
        var row;
        for (var i = 0; i < data.length; i++) {
          row = row + "<tr>";
          row = row + "<td>" + data[i].id + "</td>";
          row = row + "<td>" + data[i].latitude + "</td>";
          row = row + "<td>" + data[i].longitude + "</td>";
          row = row + "<td>" + data[i].description + "</td>";
          row = row + "<td>" + data[i].dateRecorded + "</td>";
          row = row + "</tr>";
        };
        $("#results").append(row);
        ......
Run Code Online (Sandbox Code Playgroud)

如你所见,我想把结果拿出来放在桌子上.当我的响应是多个记录时,这很有效,但如果我的响应是单个记录,我得到一个OBJECT而不是ARRAY,代码失败了data.length.为什么我不使用单个元素获得ARRAY,我该怎么办呢?

我将不胜感激任何帮助.

Que*_*tin 5

为什么我没有一个单元素的ARRAY

因为这是您正在使用的API的作者的设计决策.

我能做些什么呢?

测试看你得到了什么.如果它不是一个数组,请将其放入数组中.

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