使用jQuery从PHP读取JSON数据

时间:2012-12-16 17:34:52

标签: php jquery arrays json

我使用json_encode从PHP发送数组,我试图使用AJAX和jQuery。 一切都好。

JSON结构是:

names{"p1":"John","p5":"Smith"}

jQuery代码是:

$.ajax({
type: "POST",
url: "return.php",
dataType: "json",
data: "id=56",
success: function(data) {
        $(data.names).each(function(key, txt) {
            alert(txt);
        });
    }
}

此代码不返回任何内容!我认为浏览器不会进入each

我该怎么办?

3 个答案:

答案 0 :(得分:3)

而不是这个:

$(data.names).each(function(key, txt) {
    alert(txt);
});

使用它:

$.each(data.names, function(key, txt) {
    alert(txt);
});

并且您提到的json似乎不正确:names{"p1":"John","p5":"Smith"}

这应该是这样的:

{
    "names": {
        "p1": "John",
        "p5": "Smith"
    }
}

你可以在这里查看你的json:http://jsonlint.com/

答案 1 :(得分:1)

我建议你使用jQuery的$ .getJSON(); http://api.jquery.com/jQuery.getJSON/ 但要直接回答你的问题;你没有关闭你的ajax()函数。

$.ajax({
type: "POST",
url: "return.php",
dataType: "json",
data: "id=56",
success: function(data) {
        $(data.names).each(function(key, txt) {
            alert(txt);
        });
    }
});

答案 2 :(得分:1)

在您的代码中,您只需使用 parseJSON ()。


    $.ajax({
    type: "POST",
    url: "return.php",
    dataType: "json",
    data: "id=56",
    success: function(data) {
        var d = jQuery.parseJSON(data); 
        // ... do stuff
    }
    });