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,我该怎么办呢?
我将不胜感激任何帮助.
为什么我没有一个单元素的ARRAY
因为这是您正在使用的API的作者的设计决策.
我能做些什么呢?
测试看你得到了什么.如果它不是一个数组,请将其放入数组中.
if (! (data instanceof Array) ) {
data = [data];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37 次 |
| 最近记录: |