0

我在理解这个问题时遇到了问题。我在一个名为 list.json 的文件中有这个 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(),但还是空白。

4

3 回答 3

2

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

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

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

高温高压

于 2013-10-27T00:00:47.470 回答
1

我看到几个问题:

  • 您的 JSON 对象无效。它是一个对象数组,但前两个对象没有分隔,,并且 JSON 中的字符串应该被引用。
  • 在您的 javascript 代码中,您指的是obj.users,而您的对象,即使它有,,也根本没有用户。
于 2013-10-26T23:19:34.193 回答
1

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

只需遍历 obj[0] 到 obj[obj.length-1]。

于 2013-10-27T00:16:37.377 回答