2013-07-30 23 views
6

Tôi đang cố gắng phân tích cú pháp tệp JSON nằm trên máy tính của mình. Tôi muốn phân tích nó. Tệp JSON có cấu trúc này:Phân tích cú pháp tệp JSON cục bộ bằng jQuery và Javascript

{ 
    "sites": { 
    "site": [ 
     { 
     "id": "01", 
     "name": "Sito 1", 
     "src": "localhost/root/coupon/sito1", 
     "expiryDate": "29 Ago 2013" 
     }, 
     { 
     "id": "02", 
     "name": "Sito 2", 
     "src": "localhost/root/coupon/sito2", 
     "expiryDate": "30 Ago 2013" 
     }, 
     { 
     "id": "Sito 3", 
     "name": "Sito 3", 
     "src": "localhost/root/coupon/sito2", 
     "expiryDate": "31 Ago 2013" 
     } 
    ] 
    } 
} 

Trong html của tôi, tôi nhập thư viện jQuery và tôi đã thực hiện một chức năng sẽ tải khi tải trang. Mã bên dưới:

<!DOCTYPE html> 
<html lang="it"> 
    <head> 
     <meta charset="utf-8" /> 
     <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/> 
     <title>Lista coupon</title> 
     <script type="text/javascript" src="jquery-1.9.1.min.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
      function loadJson() { 
       window.alert("Carico il contenuto del file JSON per popolare la lista"); 
       $(document).ready(function() 
        { 
         $.getJSON('data.json', function(json) { 
          console.log(json); 
         }); 
        }); 
       } 
     </script> 
    </head> 
    <body onload="loadJson();"> 
     <div id="header"> 
      <h1>Lista coupon salvati</h1> 
     </div> 
     <div id="content"> 
      <p>Di seguito trovi tutte le promozioni salvate</p> 

     </div> 
     <div id="footer"> 

     </div> 
    </body> 
</html> 

Bây giờ tôi thấy trên bảng điều khiển Firebug có thể đọc chính xác tệp JSON, nhưng tôi không biết cách phân tích cú pháp JSON này. Tôi đã tìm kiếm trong google, nhưng tôi đã tìm thấy rất nhiều ví dụ sử dụng JSON từ xa. Bạn có thể giúp tôi hiểu cách phân tích cú pháp tệp JSON cục bộ không? Cảm ơn bạn

PS: lưu ý trang web tôi đăng trên đây được tạo cho trình duyệt dành cho thiết bị di động.

+0

getJson thực hiện cuộc gọi HTTP đến ** server ** chứ không phải máy tính của bạn. Đọc tài liệu http://api.jquery.com/jQuery.getJSON/ – Liam

+0

thực hiện một console.log trên biến 'obj' và kiểm tra cách nó được tạo. Sẽ làm cho bạn hiểu cách bạn nên sử dụng nó. – ninja

Trả lời

8

getJSON sẽ phân tích cú pháp đó cho bạn.

Chỉ cần xóa dòng var obj = $.parseJSON(json); (vì điều đó sẽ xâu chuỗi đối tượng và cố gắng phân tích cú pháp đó dưới dạng JSON (không phải là)).

+0

Ok tôi đã xóa nó, nhưng bây giờ làm thế nào tôi có thể truy cập vào đối tượng? Bây giờ tôi muốn "nắm bắt" mục nhập "name" và "src" – lucgian84

+0

'json' là đối tượng. Truy cập nó giống như bất kỳ trang nào khác. ('json.sites.etc') – Quentin

+0

vì vậy tôi chỉ cần làm json.name và json.src để lấy tên và liên kết? Tôi đã thử nó với một cảnh báo, nhưng nó nói tôi undefined ... – lucgian84

2

Tôi không nghĩ bạn cần phải phân tích cú pháp. Nó sẽ tự động phân tích cú pháp json vì bạn đang sử dụng $ .getJSON().

+2

sử dụng json.sites.site [0] .src, json.sites.site [1] .src – Sharad

+0

Cảm ơn bạn !! – lucgian84

+0

Bây giờ làm thế nào tôi có thể đặt giá trị của tên và src trong một mảng? Có quyền sử dụng $ .each? – lucgian84

Các vấn đề liên quan