JSON可以工作,但在控制台中打印错误

时间:2015-08-03 10:33:38

标签: javascript json

我想在点击href文本时显示Json数据。但是每当我点击href文本时,控制台在文件data.json中打印“Uncaught SyntaxError:Unexpected token:”。为什么会这样?我已经在JSONLint中验证了代码。

的文件:索引。 HTML

<html>
<head>
<script src="data.json"></script>
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
    <h1 id="title">Using jQuery to retrieve Json via Ajax</h1>
    <a href="#" id="clickme">Get JSON data</a>
</body>
<script>
    $(function(){
        $("#clickme").click(function(){
            $.getJSON("data.json",function(data){
                var items=[];;
                $.each(data,function(key,val){
                    items.push('<li id="'+key+'">'+val+'</li>');
                });
                console.log(items);

                $("<ul/>",{
                    "class":"interest-list",
                    html:items.join("")
                }).appendTo("body");
            });
        });
    });
</script>
</html>

文件:data.json

{
    "one":"pikachu is awesome",
    "two":"squirtle is awesome"
}

1 个答案:

答案 0 :(得分:0)

问题出在你的data.json文件中:

你必须像这样改变你的json(使用[]):

[
    {
      "one":"pikachu is awesome",
      "two":"squirtle is awesome"
    }
]

然后你必须改变你的js代码以使用数据[0]而不是数据:

$.each(data[0],function(key,val){
    items.push('<li id="'+key+'">'+val+'</li>');
});

这可以防止控制台错误,一切正常。

p.s。:我建议删除无拘无束;在第14行:

var items=[];;

var items=[];