我无法从JSON文件中检索数据

时间:2013-08-24 19:25:53

标签: javascript jquery

我在wordpress中创建了一个网站,我正在使用wordpress json API来检索我正在开发的网络应用程序的数据。 json API工作正常: http://danielvivancos.com/edu/wordpress/?json=1 我得到了我的Json文件。 但现在我正在尝试使用getjson jquery方法在我的html页面中打印它。首先,我只是尝试在div中显示来自json文件的一些信息,以检查它是否正常工作,但我不知道为什么不能。 在这里你可以查看我的脚本:

$(document).ready(function (){
$("#btn382").click(function(){       

    $.ajaxSetup({ cache: false });

    $.getJSON("http://danielvivancos.com/edu/wordpress/?json=1&count=1", function(data){
        var html = [];


        $.each(data.posts.author, function(index, author){           
            html.push("id : ", author.id, ", ",
                      "slug : ", author.slug, ", ",
                      "name : ", author.name, "<br>");
        });


        $("#div381").html(html.join('')).css("background-color", "orange");
    }).error(function(jqXHR, textStatus, errorThrown){ /* assign handler */
        /* alert(jqXHR.responseText) */
        alert("error occurred!");
    });
});
});

当然我已经创建了#div381。 我不知道我做错了什么,但我真的被卡住了。 任何帮助将不胜感激!!

编辑:控制台错误是:无法读取未定义的属性“长度”。

已解决:我已经更改了加号的昏迷,并改变了迭代文件的方式,正如下面其中一个答案所述。

2 个答案:

答案 0 :(得分:1)

似乎posts的类型是一个数组,第一个元素是包含author的哈希。

尝试重写

$.each(data.posts[0].author, ...

<强>更新

html.push("status : ", data.status, ", ",
   "count : ", data.count, ", ",
   "pages : ", data.pages, "<br>"); 
$.each(data.posts, function(index, post){
   html.push("id : ", post.author.id, ", ",
     "slug : ", post.author.slug, ", ",
     "name : ", post.author.name, "<br>");
});

答案 1 :(得分:0)

JSON文件中的posts属性为array

因此,您需要首先遍历该数组,以访问author属性!

$.each(data.posts, function(i, post) {
    var author = post.author;
});