如何访问具有以下格式的json响应

时间:2017-03-25 13:03:21

标签: javascript json ajax

我收到这样的回复:

{
    "data": [
        "http:\/\/www.domain.com.br\/anunciantes\/jorgediaz.y.com.r\/26\/img1.jpg",
        "http:\/\/www.domain.com.br\/anunciantes\/jorgediaz.t.com.r\/26\/img2.jpg"
    ]
}

我试过了:

$.ajax({
        url: "/imovel/recuperar_fotos",
         datatype: 'JSON',
         contentType: 'JSON',
        success: function (data) {
                  var i = 0;
               while(i < 3)
               {
                   alert(data[i]);
                   i++;
            }

        }
    }); 

并且数据[0] [i]也不起作用。

2 个答案:

答案 0 :(得分:0)

试试这个

$.ajax({
    url: "/imovel/recuperar_fotos",
    contentType: 'application/json',
    success: function(res) {
        for (i = 0; i < res.data.length; i++) {
            alert(res.data[i]);
        }
    }
});

答案 1 :(得分:0)

这是因为您收到的对象具有数据属性,即数组。因此,您可以遍历response.data(或data.data,遵循代码命名)。

这里有3种迭代数组的方法(避免使用while循环)

使用array的forEach方法

$.ajax({
  url: "/imovel/recuperar_fotos",
  datatype: 'JSON',
  contentType: 'JSON',
  success: function (response) {
    var photos = response.data;
    photos.forEach(function(photo) {
      console.log(photo);
    })
  }
});

使用for ... in

$.ajax({
  url: "/imovel/recuperar_fotos",
  datatype: 'JSON',
  contentType: 'JSON',
  success: function (response) {
    var photos = response.data;
    for (var i in photos) {
      console.log(photos[i]);
    }
  }
});

使用classig for loop

$.ajax({
  url: "/imovel/recuperar_fotos",
  datatype: 'JSON',
  contentType: 'JSON',
  success: function (response) {
    var photos = response.data;
    for (var i = 0; i < photos.length; i++) {
      console.log(photos[i]);
    }
  }
});