ajax成功后循环JSON响应

时间:2014-07-10 12:30:10

标签: javascript jquery ajax json

我正在使用以下返回JSON数据的ajax: -

$.ajax({
    type: "POST",
    url: "####",
    data: "####",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
       ????
    }
});

这是返回的JSON数据,当鼠标悬停在chrome开发工具中的函数(数据)时,我看到了这一点: -

d: "[{"name":"deepak","arrivalTime":"675"},{"name":"sumit","arrivalTime":"690"},{"name":"satish","arrivalTime":"1740"}]"

现在我想循环显示名称和到达时间,请帮助我。

我尝试了以下方法,但都没有奏效: -

1

for (var i = 0; i < data.length; i++) {
  var obj = data[i];
  for (var key in obj) {
    var attrName = key;
    var attrValue = obj[key];
  }
}

2

for (var i = 0; i < data.length; i++) {
    var obj = data[i];
    console.log(obj.name);
    console.log(obj.arrivalTime);
}

3

$.map(data.d, function (item, data) {
    console.log(item.name);
    console.log(data.name);
    console.log(item.arrivalTime);
    console.log(data.arrivalTime); //tried all luck :)
});

4

$.each(data, function(i, item) {
    alert(data[i].name);
    alert(data[i].arrivalTime);
})

5

$.each(data, function(i, item) {
    alert(item.name);
    alert(item.arrivalTime);
})

2 个答案:

答案 0 :(得分:1)

不确定您收到了什么,但似乎您的数据作为对象返回d。

var dataArray = data.d;
for (var i = 0; i < dataArray.length; i++){
   var name = dataArray[i].name;
   var arrivalTime = dataArray[i].arrivalTime;
};

BTW,对我来说,你的字符串数组看起来像一个字符串,你可能想要解析它。

var dataArray = JSON.parse(data.d);
for (var i = 0; i < dataArray.length; i++){
   var name = dataArray[i].name;
   var arrivalTime = dataArray[i].arrivalTime;
};

答案 1 :(得分:-1)

试试这个:

var d = '[{"name":"deepak","arrivalTime":"675"},{"name":"sumit","arrivalTime":"690"},{"name":"satish","arrivalTime":"1740"}]';
d = JSON.parse(d);
for (i =0; i< d.length; i++) {
  alert(d[i].name+"--"+d[i].arrivalTime);
}