2011-01-28 63 views
21

Trước hết, tôi là người mới đến lĩnh vực Javascript. Tôi có một tập tin JSON, chẳng hạn như sau:Cách sử dụng tệp JSON trong javascript

{"markers": [ 
    { 
    "abbreviation": "SPA", 
    "latitude":-13.32, 
    "longitude":-89.99, 
    "markerImage": "flags/us.png", 
    "information": "South Pole", 
    }, 

.... lots more of these in between .... 

{ 
    "abbreviation": "ALE", 
    "latitude":-62.5, 
    "longitude":82.5, 
    "markerImage": "flags/us.png", 
    "information": "Alert", 
    }, 
] } 

tôi đã và đang làm rất nhiều nghiên cứu như thế nào tôi có thể mang file này trở lại kịch bản của tôi chỉ tìm cách để mã hóa chuỗi vào file JSON. Về cơ bản, tôi muốn đọc tập tin này thông qua javascript, một cái gì đó như thế này ... (Tôi biết điều này là không phải là cách bạn mã)

object data = filename.json 
document.write(data.markers.abbreviation[1]) 

Có thể ai đó xin vui lòng cho tôi hướng dẫn rõ ràng về cách đi về việc này. Hãy nhớ rằng, tôi là một người mới và cần các chi tiết cụ thể vì tôi không ngang bằng với thuật ngữ javascript.

Trả lời

48

Trước tiên, bạn cần xử lý trên tệp. Bạn cần phải nhận được nó bằng cách nào đó hoặc thông qua ajax hoặc thông qua hành vi phía máy chủ.

Bạn cần biết sử dụng tệp ở đâu. Làm thế nào bạn có kế hoạch để có được nó và những gì serveride mã của bạn sử dụng.

Khi bạn có, bạn có thể sử dụng JSON.parse(string) trên đó. Bạn có thể bao gồm tệp json2.js nếu bạn cần hỗ trợ các trình duyệt cũ hơn.

Nếu bạn sử dụng jQuery, bạn cũng có thể thử để phân tích cú pháp thay thế.

Một lựa chọn cho việc điều khiển từ xa json sẽ được sử dụng jQuery.getJSON

Để tải nó, bạn có thể sử dụng JSONP hoặc một số loại thư viện với chức năng ajax như jQuery.ajax hoặc Ajax.Request. Nó có thể được thực hiện trong javascript thô nhưng đó chỉ là xấu xí và tái phát minh ra bánh xe.

$.getJSON("document.json", function(data) { 
    console.log(data); 
    // data is a JavaScript object now. Handle it as such 

}); 
+3

Tôi muốn upvote điều này nếu nó được liên kết với thư viện được thảo luận. – Quentin

+2

@DavidDorward nó liên kết với chúng. Tôi có thực sự cần liên kết trực tiếp đến tệp '.js' không? – Raynos

+0

Các liên kết không hiển thị khi tôi viết nhận xét đó. – Quentin

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