2015-08-03 61 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=[];