Mô-đun JSON là một triển khai của đặc tả ECMA 5 để chuyển đổi dữ liệu sang và từ Ký hiệu đối tượng JavaScript. JSON là định dạng trao đổi dữ liệu an toàn, hiệu quả và đáng tin cậy. Mô-đun này cung cấp triển khai JavaScript của thông số kỹ thuật, dựa trên json2 của Douglas Crockford. js. Đối với các trình duyệt có hỗ trợ gốc, nó chuyển sang triển khai gốc
Bắt đầu
Để bao gồm các tệp nguồn cho JSON và các phần phụ thuộc của nó, trước tiên hãy tải tệp gốc YUI nếu bạn chưa tải tệp đó
Tiếp theo, tạo một phiên bản YUI mới cho ứng dụng của bạn và điền vào đó các mô-đun bạn cần bằng cách chỉ định chúng làm đối số cho phương thức
3. YUI sẽ tự động tải bất kỳ phụ thuộc nào theo yêu cầu của các mô-đun bạn chỉ địnhĐể biết thêm thông tin về cách tạo phiên bản YUI và về phương thức
4, hãy xem tài liệu về Đối tượng toàn cầu YUISử dụng Tiện ích JSON
Tổng quan về mô-đun JSON
Mô-đun JSON thêm không gian tên
5 vào phiên bản YUI của bạn. Các phương thức của nó là tĩnh, có sẵn từ không gian tên nàyĐể giảm thiểu dấu chân mã khi không yêu cầu một số chức năng, JSON đã được chia thành các mô-đun sau
Phân tích chuỗi JSON thành các giá trị JavaScript gốc
Được cung cấp một chuỗi chứa dữ liệu ở định dạng JSON, chỉ cần chuyển chuỗi đó tới
4 và lấy giá trị trả vềYUI[].use['json-parse', function [Y] { var jsonString = '{"products":['+ '{"id":1,"price":0.99,"inStock":true,"name":"grapes"},'+ '{"id":2,"price":3.5,"inStock":false,"name":"passion fruit"},'+ '{"id":3,"price":2.5,"inStock":true,"name":"bananas"}'+ ']}'; // JSON.parse throws a SyntaxError when passed invalid JSON try { var data = Y.JSON.parse[jsonString]; } catch [e] { alert["Invalid product data"]; } // We can now interact with the data for [var i = data.products.length - 1; i >= 0; --i] { var p = data.products[i]; if [p.price < 1] { p.price += 1; // Price increase! } } }];
Sử dụng tham số "hồi sinh"
Tham số thứ hai tùy chọn cho
4 chấp nhận một hàm sẽ được thực thi trên từng thành viên của đối tượng JavaScript được phân tích cú pháp. Mỗi lệnh gọi đến hàm phục hồi được truyền khóa và giá trị liên quan và được thực thi từ ngữ cảnh của đối tượng chứa khóa. Nếu giá trị trả về của trình khôi phục là 6, khóa sẽ bị bỏ qua khỏi đối tượng được trả vềCách sử dụng điển hình của các chức năng hồi sinh là lọc, định dạng và chuyển đổi giá trị
________số 8Một lời cảnh báo chống lại việc sử dụng 7
Định dạng dữ liệu JSON là một tập hợp con của ký hiệu JavaScript, nghĩa là có thể sử dụng JavaScript
7 để chuyển đổi dữ liệu JSON thành dữ liệu trực tiếp. Tuy nhiên, sẽ không an toàn nếu cho rằng dữ liệu tiếp cận mã của bạn không phải là dữ liệu độc hại. 7 có khả năng thực thi cú pháp đầy đủ của JavaScript, bao gồm gọi hàm và truy cập cookie với tất cả các đặc quyền của mộtYUI[].use['json-parse', function [Y] { var jsonString = '{"products":['+ '{"id":1,"price":0.99,"inStock":true,"name":"grapes"},'+ '{"id":2,"price":3.5,"inStock":false,"name":"passion fruit"},'+ '{"id":3,"price":2.5,"inStock":true,"name":"bananas"}'+ ']}'; // JSON.parse throws a SyntaxError when passed invalid JSON try { var data = Y.JSON.parse[jsonString]; } catch [e] { alert["Invalid product data"]; } // We can now interact with the data for [var i = data.products.length - 1; i >= 0; --i] { var p = data.products[i]; if [p.price < 1] { p.price += 1; // Price increase! } } }];0