2015-08-03 5 views
1

Я хочу показать данные Json, когда текст href щелкнут.it работает, но всякий раз, когда я нажимал текст href, консоль печатает «Uncaught SyntaxError: Unexpected token:» в файле data.json , почему это происходит? Я проверяю код в JSONLint.JSON работает, но печатает ошибку в консоли

файл: указатель. 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

'Uncaught 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 .: Я предлагаю удалить неиспользуемые; в строке 14:

var items=[];; 

к

var items=[]; 
Смежные вопросы