【问题标题】:How can i get value of array using ajax function?如何使用 ajax 函数获取数组的值?
【发布时间】:2015-11-10 23:34:23
【问题描述】:

我有json数组

这是我的代码

 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);
      }
    });

  }

我想获取每个对象的 uid

但我的输出是 undefined 。 .我究竟做错了什么 ?请帮忙。

【问题讨论】:

    标签: javascript jquery arrays ajax json


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这个怎么样:

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

      【讨论】:

        【解决方案3】:
        var response = JSON.parse(data);
        response.forEach(function(item){
            console.log(item.uid);
        });
        

        【讨论】:

        • 嗯。 .我如何在我的代码getParticipant(conf_url, function(output){ var uid = output.uid; document.write(uid); }); 上输出它?
        • @biancamihai :实际上您不需要将数据解析为 json,因为它已经以 json 的形式出现。 ajax请求中数据类型设置为json。
        【解决方案4】:

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

        所以

        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返回的数据了。

        【讨论】:

        • 嗯。 .如何在我的代码getParticipant(conf_url, function(output){ var uid = output.uid; document.write(uid); }); 上输出它?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-23
        • 1970-01-01
        • 1970-01-01
        • 2021-10-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多