无法使用jquery ajax从json获取数据

时间:2013-08-15 15:59:11

标签: javascript ajax json jquery

我刚刚开始使用jquery学习json而且我遇到了一些困难,我花了两天时间,我在youtube和博客上都有很多教程,但他们展示的不是我的情况。他们的json与我的不同。他们有多个钥匙,我只有一个“新闻”

来自我得到的服务器的JSON响应是这样的:

{ 
    "news":[
        {
            "id":48927,
            "name": "The title goes right here",
            "url": "www.example.com",
            "date":"16 August 2013",
            "image":"img.example.com\/image.jpg"
        },
        {
            "id": 48908,
            "name":"The title goes right here — photography",
            "url":"www.example.net",
            "date":"17 August 2013",
            "image":"img.example.net\/image2.jpg"
        }
    ]
}

实际上我从服务器得到的更像是这样:

{"news":[{"id":48927,"name": "The title goes right here","url": "www.example.com","date":"16 August 2013","image":"img.example.com\/image.jpg"},{"id": 48908,"name":"The title goes right here — photography","url":"www.example.net","date":"17 August 2013","image":"img.example.net\/image2.jpg"}]}

但他们都有效!我已经用JSON LINT检查了。

所以我无法做的是从JSON获取所有信息并将它们附加到我的#posts

我已经尝试了 $。getJSON & $。ajax 但是未定义作为回复

$(document).ready(function() {

    $.ajax({
        url: 'http://s.example.com/myjson.php',
        data: 'GET',
        dataType: 'json',

        success: function(data){
            $('#posts').append('name: ' + data.news.id + '<br/>');
        },
    });

});

在上面的代码中,我尝试使用 data,data.id,data.news,data.url 等附加,但总是得到undefined或null。

$(document).ready(function() {

    $.getJSON("http://s.example.com/myjson.php", function(data) {
        $.each(data, function(key, value) {
            $("#posts").append("<li>"+data.news+"</li>");
        });
    });


});

$。ajax 相同,尝试添加不同的内容,但没有。

我想要做的是为我的json文件中的每个“事物”附加所有数据id,name,url,date,image。但不幸的是,我一开始就陷入困境。这真的令人沮丧,因为它看起来很简单,但我无法找到办法。请帮帮我!!

3 个答案:

答案 0 :(得分:1)

在您的成功函数中,循环遍历新闻数组中的所有元素:

for (var i=0; i < data.news.length; i++) {
    $('#posts').append('name: ' + data.news[i].id + '<br/>');
}

答案 1 :(得分:0)

在您的JSON中,news数组

您需要从数组中的元素获取属性:

data.news[42].id

你需要找出要获得的元素。

答案 2 :(得分:0)

data.news是一个数组,因此您必须遍历它以获取所有值

$(document).ready(function() {

    $.getJSON("http://s.example.com/myjson.php", function(data) {
        $.each(data.news, function(key, value) {
            $("#posts").append("<li>"+value.id+"</li>");
        });
    });


});