从嵌套的JSON向表中追加数据

时间:2014-01-16 18:45:44

标签: jquery json

我在点击按钮后使用tr.apppend jQuery函数将JSON数据附加到简单的HTML表时出现问题。我已经在Firebug中检查了控制台,并且我收到了正确的JSON数据,但在某个地方,它没有迭代嵌套数据并附加到HTML表格。

我的JSON数据格式:

{"response": {"system": {"database": "3"}, "songs": [{"artistid": "1", "song": "Umbrella"}, {"artistid": "1", "song": "We Found Love"}]}}

我尝试将[i]添加到tr.append数据数组的各个部分,但似乎都没有。 [i]是否处于正确的位置或嵌套的JSON数据是否需要不同的工作方法?

$.getJSON(APIurl + name + '&format=json&start=0&results=2', function(data) {
     for (var i = 0; i < data.length; ++i) {
    var tr = $('<tr/>');
    tr.append("<td class='artist'>" + data.songs[i].artistid + "</td>");
    tr.append("<td class='title'>" + data.songs[i].song + "</td>");
    tr.append("<td>" + "<button class='send' type='submit'>Add to database</button>" + "</td>");
    $('#table').append(tr);
    }
 });

1 个答案:

答案 0 :(得分:1)

for (var i = 0; i < data.length; ++i)更改为for (var i = 0; i < data.songs.length; ++i)

当需要在songs属性/数组上调用时,在根对象上调用length属性。