是否有getJSON成功函数?

时间:2014-06-07 01:18:23

标签: javascript jquery json

我有一个getJSON函数,如下所示:

$.getJSON("jsonStats.php?action=segment", function(json) {
    //Loop over each of the values in the jSON response to make the table.
        var tableSegments = '',
            counter = 1;
        $.each(json, function(key, value) {
                tableSegments += '<tr>';
                    tableSegments += '<td></td>';
                    tableSegments += '<td>'+counter+'</td>';
                    tableSegments += '<td>'+value['name']+'</td>';
                    tableSegments += '<td>'+value['y']+'</td>';
                tableSegments += '</tr>';
            counter++;
        });

        $('#segmentTable').empty().append(tableSegments);   
});

我遇到的问题是它在获取数据之前运行每个语句/创建表。有没有办法让它等到它在执行该部分之前实际拥有jSON数据?

2 个答案:

答案 0 :(得分:1)

您可以使用done回调(jquery.getjson reference):

$.getJSON('jsonStats.php?action=segment')
.done(function(json)
{
    //Loop over each of the values in the jSON response to make the table.
    var tableSegments = '',
        counter = 1;

    $.each(json, function(key, value)
    {
        tableSegments += '<tr>';
        tableSegments += '<td></td>';
        tableSegments += '<td>'+counter+'</td>';
        tableSegments += '<td>'+value['name']+'</td>';
        tableSegments += '<td>'+value['y']+'</td>';
        tableSegments += '</tr>';
        counter++;
    });

    $('#segmentTable').empty().append(tableSegments);   
})
.fail(function(jqxhr, textStatus, error)
{
    var err = textStatus + ', ' + error;
    console.log( 'Request Failed: ' + err );
});

答案 1 :(得分:0)

想出来......

value['name'] and value['y'] 

需要value[0]value[1]

今天早上我的标题为text/javascript,因此响应是一个对象,将其更改为application/json,这就是使这些值发生变化的原因。