【问题标题】:Iterating over JSON Data on AJAX Success Using JQuery使用 JQuery 在 AJAX 成功上迭代 JSON 数据
【发布时间】:2017-02-08 08:41:40
【问题描述】:

我有一个从查询返回 JSON 数据的 AJAX 调用:

<script>
    function retrieveTrips(){
        // Get a history of trips

        $.ajax({
            url:'cfcs/mileagedata.cfc?method=getTrips&returnformat=json',
            data: { ticket_id: #get_ticket.ticket_id# },
            success: function(response) {
                $("##tripDate").html(response);
                console.log(response);
                }
          });
    }
</script>

我想在成功函数上迭代返回的 JSON 数据,并使用 JQUERY 将其输出到 HTML 表。我能做到的最接近的就是将所有数据输出到表中的 div 中。谁能帮我看看 JQUERY 代码的外观?

这是我的 JSON 响应:

{
    "COLUMNS": ["ID", "VEHICLE_ID", "TICKET_ID", "_DATE", "START_ODOMETER", "END_ODOMETER", "ORIGIN", "DESTINATION", "TOTAL_MILEAGE", "EXPENSES", "DESCRIPTION"],
    "DATA": [
        [1650, "6", "30996", "September, 29 2016 00:00:00 -0400", "11782", "11822", "Jaydien", "Mazza", "40", "0.00", ""]
    ]
}

我的编辑:

 <script>
        function retrieveTrips(){
            // Get a history of trips

            $.ajax({
                url:'cfcs/mileagedata.cfc?method=getTrips&returnformat=json',
                data: { ticket_id: #get_ticket.ticket_id# },
                success: function(response) {
                    $("##tripDate").html(response);

                    for (i = 0; i < response.DATA.length; i++) { 
                        var row = response.DATA[i];
                        console.log(row);
                    }

                    }
              });
        }
    </script>

【问题讨论】:

    标签: javascript jquery json ajax


    【解决方案1】:

    在你的成功调用中试试这个,用这个代替你的 console.log();

    response = JSON.parse(response);
    
    for (i = 0; i < response.DATA.length; i++) { 
        var row = response.DATA[i];
        console.log(row);
    }
    

    你还有一个 ## 应该只是 1 # 否则它不会返回到 propper 元素

    返回 json 是一个 JSON 返回的两个属性,两个属性都包含一个数组,第一个属性告诉你列的含义第二个包含实际数据,只处理你调用 response.DATA 的数据,DATA 是属性名称在json对象中

    【讨论】:

    • 我添加了该代码并收到此错误:Uncaught TypeError: Cannot read property 'length' of undefined 我将我的编辑添加到问题中。
    • 你确定你的响应是 JSON 吗?如果你 console.log(response);它告诉你它是一个对象吗?
    • 不,它没有:{"COLUMNS":["ID","VEHICLE_ID","TICKET_ID","_DATE","START_ODOMETER","END_ODOMETER","ORIGIN","DESTINATION" ,"TOTAL_MILEAGE","EXPENSES","DESCRIPTION"],"DATA":[[1650,"6","30996","2016 年 9 月 29 日 00:00:00 -0400","11782","11822 ","Jaydien","Mazza","40","0.00",""]]}
    • 尝试:response = JSON.parse(response);在 for 循环上方,还可以查看 w3schools.com/js/js_json_intro.asp 这可能会让您受益,并且会帮助您完成您仍然需要做的工作
    • 对不起,我没有关注。你可以发布一个答案,以便我可以看到完整的代码?
    猜你喜欢
    • 2016-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-05
    • 2015-04-03
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 2013-01-07
    相关资源
    最近更新 更多