2015-08-03 66 views
1

我想在点击href文本时显示Json数据。它可以工作,但每当我点击href文本控制台打印文件data.json中的“Uncaught SyntaxError:Unexpected token:” 。为什么发生这种情况?我已经验证了JSONLint中的代码。JSON的作品,但在控制台打印错误

file:index。 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" 
} 
+0

'未捕获的SyntaxError:意外的标记:'是不是整个错误消息,还是你把它? –

+0

请从控制台打印完整的错误信息,可能是有一些行号,这将有所帮助。 另外,检查你的data.json文件保存最后一行是否为空?如果是,请删除并尝试。 – Pranav

回答

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 .:我建议删除unnedded;在第14行:

var items=[];; 

var items=[];