2010-10-26 108 views
1

我該如何閱讀這個json數組?我得到未定義的結果。我究竟做錯了什麼?如何讀取json數組?

= JSON文件==

// JSON 
{ 
"items": [ 
    { 
    "title": "welcoem home", 
    "author": "Charles Dickens" 
    }, 
    { 
    "title": "Harry Potter", 
    "author": "J rowling" 
    }] 
} 

<script language="javascript" > 
$(document).ready(function() { 
    $('#letter-a a').click(function() { 
    $.getJSON('q3.json', function(data) { 
     $('#dictionary').empty(); 
     $.each(data, function(entryIndex, entry) { 
     var html = '<div class="entry">'; 
     html += '<h3 class="title">' + entry['title'] + '</h3>'; 
     html += '<div class="author">' + entry['author'] + '</div>'; 
     html += '<div class="definition">'; 
     if (entry['items']) { 
      html += '<div class="quote">'; 
      $.each(entry['items'], function(lineIndex, line) { 
      html += '<div class="quote-line">' + line + '</div>'; 
      }); 
      if (entry['author']) { 
      html += '<div class="quote-author">' + entry['author'] + '</div>'; 
      } 
      html += '</div>'; 
     } 
     html += '</div>'; 
     html += '</div>'; 
     $('#dictionary').append(html); 
     }); 
    }); 
    return false; 
    }); 
}); 


</script> 

<link rel="stylesheet" href="json.css" type="text/css" /> 
</head> 

<body> 
<div id="container"> 
     <div id="header"> 
     <h2>json stuff</h2> 
     </div> 

     <div class="letters"> 
       <div class="letter" id="letter-a"> 
       <h3><a href="#">A</a></h3> 
       </div>  

     </div> 
     <div id="dictionary"> 

     </div> 
</div> 
+0

錯誤是什麼線?雖然在這裏我們可以弄明白,爲什麼讓我們猜測? – 2010-10-26 00:56:44

回答

3
$.each(data, function(entryIndex, entry) { 

不能在data運行each,因爲它不是一個數組。我想你想要的是

$.each(data.items, function(entryIndex, entry) { 
+0

謝謝。那工作。是否有任何其他的方式不使用jquery? - 感謝 – user244394 2010-10-26 01:29:28

+0

您可以使用幾乎任何其他庫/框架,或者用純JavaScript書寫所有代碼。 – Phil 2010-10-26 02:05:26

+0

你會如何閱讀這個使用普通的JavaScript? – user244394 2010-10-28 23:31:09