无法使用jquery迭代json对象

unable to iterate over json object using jquery

本文关键字:迭代 json 对象 jquery      更新时间:2023-12-04

我是AJAX/JQuery/JSON的新手,我正在使用Struts2使用AJAX获取JSON对象,我可以看到返回的对象,但我无法对其进行迭代。返回的对象是一个只有一个对象(可能包含更多对象)的列表,而且每个对象都包含其他对象的列表。

js文件是这样的:

$.getJSON('GetAllSaleItemsAction', {
        customerName : debtorSelection
    }, function(jsonResponse){
        //alert(jsonResponse);
        //populate table
        var trHtml = '';
        //$("tr:has(td)").remove();
        jsonResponse = jsonResponse.saleItemsList;
        var responseString = JSON.stringify(jsonResponse);
        console.log(responseString);
        $.each(jsonResponse, function(i, item) {
            var saleEntries = $.parseJSON(item.singleSaleEntries);
            var saleEntriesString = JSON.stringify(saleEntries);
            console.log(saleEntriesString);
            var sseString = '';
            $.each(saleEntries, function(n, sse){
                sseString += sse.item + ' ' + sse.quantity + ' x ' + sse.price + ' = ' + sse.amount;
            });
            trHtml+= '<tr><td>' + item.date + '</td><td>' + sseString + '</td><td>' + item.saleAmount  + '</td><td>' + item.interest  + '</td><td>' + item.totalAmount + '</td></tr>';
        });
        if(trHtml != ''){
            $('#saleRecordTable').append(trHtml);
        }
    });

这里执行第一个console.log,但不执行第二个console.log,因为每个函数中的javascript都不执行:

[{"customerName":"Tester","date":"2015-02-16T17:36:19","debtorId":1,"interest":0,"saleAmount":14000,"saleId":3,"singleSaleEntries":[{"amount":9000,"item":"DAP_50KG","price":900,"quantity":10,"saleEntry":null,"singleSaleId":4},{"amount":5000,"item":"UREA_50KG","price":500,"quantity":10,"saleEntry":null,"singleSaleId":5}],"totalAmount":14000}]


请引导我。

问题出在var saleEntries = $.parseJSON(item.singleSaleEntries);将此语句更改为var saleEntries = item.singleSaleEntries;

一切都很好,问题是调试点被设置为下一条语句,由于这一行中的错误,控件永远无法到达那里。