在jQuery错误中解析JSON

时间:2013-12-24 14:13:55

标签: jquery html json

这是从前一个问题mine开始的,但是已经重新聚焦以解决特定的jQuery问题。

我目前正在尝试将PHP / MySQL搜索中的JSON结果解析为一个简单的HTML表。但是,使用搜索时,我的表中没有数据返回。我收到了Ajax请求的响应,因为当我在Firebug中调试我的搜索页面时,我的请求以这个正确的JSON字符串返回:

[{"ARTIST":"Coldplay","TRACKTITLE":"Fix You","PLAYLIST":"Rock"},{"ARTIST":"Katy Perry","TRACKTITLE":"Roar","PLAYLIST":"Pop"}]

在我的jQuery文件中,我可以解析JSON以将每个{}数据字符串附加到HTML表的一行中(将ARTIST,TRACKTITLE和PLAYLIST作为我的列标题)。我不清楚我哪里出错了,为什么我的JSON字符串没有正确转换成我的HTML表格,所以任何以正确方式解析这些数据的指针都会有所帮助。

jQuery文件

$.post('ajax/name.php', {name: name}, function(data) {

var sentData=JSON.parse(data)

for(var i = 0; i < sentData.ARTIST.length; ++i)
var tr = $('<tr/>');
tr.append("<td>" + sentData.ARTIST + "</td>");
tr.append("<td>" + sentData.TRACKTITLE + "</td>");
tr.append("<td>" + sentData.PLAYLIST + "</td>");
$('#multiple').append(tr);
});

HTML提取

<table class="table hovered" id="multiple">
  <thead>
        <tr>
          <th class="text-left">Artist</th>
          <th class="text-left">Track Title</th>
          <th class="text-left">Playlist</th>
        </tr>
  </thead>
 </table>

更新

我在我的PHP文件中添加了header('Content-Type: application/json');,现在Firebug显示了一个JSON标签,这是个好消息。但是我仍然无法将该JSON解析为HTML表格。

2 个答案:

答案 0 :(得分:0)

您的数据是有效的JSON并且是一个数组,因此请使用index来获取数据。所以你不需要JSON.parse

$.post('ajax/name.php', {
    name: name
}, function (data) {
    for (var i = 0; i < data.length; ++i)
        var tr = $('<tr/>');
    tr.append("<td>" + data[i].ARTIST + "</td>");
    tr.append("<td>" + data[i].TRACKTITLE + "</td>");
    tr.append("<td>" + data[i].PLAYLIST + "</td>");
    $('#multiple').append(tr);
});

答案 1 :(得分:0)

不确定是否有人感兴趣或者是否有任何用处但是我已经解决了问题 - 这是一个相当简单的问题。

{}行后for以及$('#multiple').append(tr);行后结束时,有一些缺失的括号{{1}}。