解析来自AJAX请求的结果

时间:2014-06-03 10:18:08

标签: javascript php jquery ajax json

我有这个ajax请求:

var rootURL = "http://localhost/myapp/api/api.php";
$.ajax({
     type: 'GET',
     url: rootURL + '/favourites',
     dataType: "json", 
     success: function(list) {

     },
     error: function(list) {

     }
});

并且api.php对DB和编码结果进行查询

echo '{"result": ' . json_encode($result) . '}'; 

是这样的:

{
    "result": [
        {
            "ID": "1",
            "username": "username1",
            "name": "name1",
            "year": "year1"
        },
        {
            "ID": "2",
            "username": "username2",
            "name": "name2",
            "year": "year2"
        }
    ]
}

现在如何在Javascript中的list回调中获取并打印JSON结果success的两行? 我试过这个:

var decoded = JSON.parse( lista );

但收到错误:JSON.parse: unexpected character at line 1 column 1 of the JSON data

由于

2 个答案:

答案 0 :(得分:4)

您不需要解析,只需要在结果中迭代数组。

这样做:

success: function(list) {

    $.each(list.result,function(index,item){

    console.log(item);

    });
}

FIDDLE DEMO

答案 1 :(得分:2)

请勿致电JSON.parse。当你说dataType: "json"时,jQuery会为你做这件事。 list是一个对象。所以只需访问包含结果数组的list.result

此外,您的PHP不应该像这样手工构建JSON。应该这样做:

echo json_encode(array('result' => $result));