2008-11-03 36 views
8

Trong GWT, cách tốt nhất để chuyển đổi loại lớp phủ JavaScriptObject thành chuỗi JSON là gì?Loại lớp phủ GWT, chuyển đổi thành JSON

Tôi hiện đang có

public final String toJSON() {  
    return new JSONObject(this).toString(); 
} 

Mà dường như làm việc tốt. Tôi muốn biết nếu có cách tiếp cận nào tốt hơn.

+0

Ngoài việc sử dụng thư viện khác để thực hiện việc này, đây là cách tốt nhất. Nó yêu cầu bạn thêm vào mô-đun GWT của bạn –

Trả lời

4

Tôi chưa bao giờ thực sự thử điều đó (chỉ tiêu thụ JSON cho đến nay, không bao giờ cần thiết để tạo ra nó). Điều này có vẻ là chức năng trình duyệt/javascript gốc.

Bạn thể viết nó như:

public native String toJSON() /*-{ 
    return this.toString(); 
}-*/; 

Họ chủ yếu chỉ làm điều tương tự chính xác và kết quả có khả năng sản lượng JavaScript giống hệt nhau. Trình biên dịch tối ưu hóa thực sự tuyệt vời.

+3

Tính năng này có hoạt động không? Tôi đã thực hiện chính xác điều này trong một loại lớp phủ và nó trả về [đối tượng đối tượng]. Bất kỳ trợ giúp được đánh giá cao, cảm ơn. – Eugen

+0

@Eugen - xem nhận xét của Nick. Như ông đã đề cập, hầu hết các trình duyệt hiện đại sẽ hỗ trợ 'JSON.stringify()'. Nếu bạn cần hỗ trợ một trình duyệt không sử dụng một polyfill như [JSON 3] (http://bestiejs.github.io/json3/). – Barrie

2

chúng ta có một phương pháp JSNI như vậy, nhưng sử dụng thư viện douglas crockfords JSON (trong trường hợp trình duyệt không cung cấp một cách tự nhiên):

https://github.com/douglascrockford/JSON-js

public native String stringify() /*-{ 
    return JSON.stringify(); 
}-*/; 

whats tốt đẹp là stringify có thể mất các thông số để in đẹp đầu ra bằng dấu thụt đầu dòng ... trong số những thứ khác

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