使用jQuery从JSON创建动态嵌套列表

时间:2013-10-26 23:13:07

标签: javascript jquery json

我在理解这个问题时遇到了问题。我将这个json放在一个名为list.json的文件中用于测试目的。稍后我将获得服务器生成的这个列表。

[
{
    name    : "ABC",
    id      : "link_abc"
},
{
    name    : "DEF",
    id      : "link_def"
},
{
    name    : "GHI",
    id      : "link_ghi"
},
{
    name    : "JKL",
    id      : "link_jkl"
}

]

这是我的javascript以<li>格式显示列表。

$(function(generate_list_from_JSON){
$('a[href="#state"]').click(function(){
    $.getJSON("scripts/list.json", function (obj){
        $.each(obj.name, function (key, value){
            alert(key);
            })
        });
    });
});

问题是,即使在控制台中也没有显示任何内容。如何捕获正在发送的内容和接收的内容?我试过console.log()但仍然空白。

3 个答案:

答案 0 :(得分:2)

JSON需要在属性名称周围加上引号。所以你需要做这样的事情:

[
{
    "name"    : "ABC",
    "id"      : "link_abc"
},
...
]

JavaScript对象不需要引用属性名称,但JSON可以。

HTH

答案 1 :(得分:1)

我看到几个问题:

  • 您的JSON对象无效。它是一个对象数组,但前两个对象没有用,分隔,JSON中的字符串应该被引用。
  • 在您的javascript代码中,您引用的是obj.users,您的对象即使拥有,,也根本没有用户。

答案 2 :(得分:1)

你不能在obj.name上做每一个。 obj是一个数组。数组没有名为“name”的属性,因此您永远不会进入循环。

只需将obj [0]循环到obj [obj.length-1]。