如何使用ajax函数获取数组的值?

时间:2015-08-18 06:52:53

标签: javascript jquery arrays ajax json

我有json数组

enter image description here

这是我的代码

 var conf_url = "https://192.168.236.33/confbridge_participants/conference_participants.json?cid=0090000007";

   getParticipant(conf_url, function(output){
        var uid = output.uid;
        document.write(uid);
        });

 function getParticipant(conf_uri, handleData) {
    $.ajax({
      type: "GET",
      url: conf_uri,
      dataType: "jsonp",
      jsonpCallback: 'callback',
      contentType: "application/javascript",
      success: function(data) {
        handleData(data);
     //   console.log(data);
      }
    });

  }

我想得到每个对象的内容

但我的输出未定义。 。我究竟做错了什么 ?请帮忙。

4 个答案:

答案 0 :(得分:3)

您已遍历对象列表以输出值。你得到一个对象数组。

所以

data.forEach(function(obj){
    console.log(obj['uid'])
})

以下内容将输出uid。

<强>更新

您正在将回调函数传递给Ajax请求。所以只需按照以下方式进行。

getParticipant(conf_url, function(data) {
    data.forEach(function(obj){
       document.write(obj['uid'])
    })
});

function getParticipant(conf_uri, handleData) {
    $.ajax({
        type: "GET",
        url: conf_uri,
        dataType: "jsonp",
        jsonpCallback: 'callback',
        contentType: "application/javascript",
        success: handleData(data);
    });
}

直接将回调函数传递给ajax成功,你可以访问回调函数中ajax返回的数据。

答案 1 :(得分:1)

你需要一个循环来读取每个对象的uid。您的代码现在正在读取Array对象上的uid属性,这就是您获得未定义的

的原因

答案 2 :(得分:1)

这个怎么样:

 console.log(Object.keys(data).map(function(value, index){ return data[value].uid; }));

答案 3 :(得分:1)

var response = JSON.parse(data);
response.forEach(function(item){
    console.log(item.uid);
});