2009-08-11 28 views
9

jQuery có xây dựng trong hỗ trợ JSON hay tôi phải sử dụng một plugin như jquery.json-1.3.min.js?jQuery có xây dựng hỗ trợ JSON không?

+2

Mã hóa hoặc giải mã? –

+0

Tôi không thấy chương trình này liên quan như thế nào? – geejay

+9

@geejay bạn không? jquery là javascript, AJAX, json, tất cả đều rất liên quan đến lập trình mà tôi nghĩ. – JasonDavis

Trả lời

9

Bạn cũng có thể sử dụng $ .ajax và thiết lập dataType option để "json":

$.ajax({ 
     url: "script.php", 
     global: false, 
     type: "POST", 
     data: ({id : this.getAttribute('id')}), 
     dataType: "json", 
     success: function(json){ 
     alert(json.foo); 
     } 
    } 
); 

Ngoài ra, $.get$.post có một tham số tùy chọn thứ tư cho phép bạn đặt kiểu dữ liệu của phản hồi, ví dụ:

$.postJSON = function(url, data, callback) { 
    $.post(url, data, callback, "json"); 
}; 

$.getJSON = function(url, data, callback) { 
    $.get(url, data, callback, "json"); 
}; 
+1

đây là cách tôi đang cố gắng làm điều đó thực sự, tôi nhận được một phản ứng json từ một cuộc gọi ajax vì vậy đây là hoàn hảo cho tình hình của tôi! – JasonDavis

9

Có, hoàn toàn không. Bạn có thể làm một cái gì đó như:

$.getJSON('/foo/bar/json-returning-script.php', function(data) { 
    // data is the JSON object returned from the script. 
}); 
+1

cảm ơn điều này là tốt để biết, trong tình hình của tôi phản ứng của karim79 là cách tôi cần phải làm điều đó mặc dù. 1 Tôi tự hỏi tại sao họ có một plugin cho json nếu nó được xây dựng trong !? – JasonDavis

1

Hỗ trợ JSON của jQuery rất đơn giản, thận trọng với gió. Tôi đã sử dụng $.ajax và sau đó phân tích cú pháp văn bản phản hồi bằng số json.org javascript library. Nó phân tích cú pháp từ vựng để tránh sử dụng eval() và có thể thực thi mã tùy ý.

+2

json2.js được đề xuất từ ​​json.org thực sự sử dụng eval. Nó chỉ có một số mã vệ sinh phức tạp chạy qua nguồn json đầu tiên. Có một trình phân tích cú pháp từ vựng như dự phòng, nhưng nó chạy chậm hơn nhiều, bởi tất cả các tài khoản. – Breton

+0

Cảm ơn bạn đã làm rõ. – spoulson

1

jQuery hỗ trợ giải mã JSON, nhưng không hỗ trợ mã hóa ngoài hộp. Để mã hóa, bạn sẽ cần một plugin, một thư viện riêng biệt hoặc một trình duyệt hỗ trợ các lệnh JSON.stringify và JSON.parse nguyên bản.

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