2011-01-13 50 views
28

Làm cách nào để tạo đối tượng json bằng Google Gson? Đoạn mã sau tạo một đối tượng json trông giống như {"name":"john"}Tạo đối tượng GSON

JsonObject jsonObject = new JsonObject(); 
jsonObject.addProperty("name", "john"); 

Làm thế nào để tạo ra một đối tượng JSON như thế này?

{"publisher":{"name":"john"}} 
+0

Bạn đang nói về [Gson] (http://code.google.com/p/google-gson/)? –

+0

có. Tôi đang nói về Gson. – Raunak

+0

Thay đổi tiêu đề rồi? –

Trả lời

14

Đã tìm hiểu cách thực hiện chính xác bằng cách sử dụng Java Objects.

Creator creator = new Creator("John"); 
new Gson().toJson(creator); 

Triển khai lớp java của người sáng tạo.

public class Creator { 

    protected String name; 

    protected HashMap<String, String> publisher = new HashMap<String, String>(); 

    public Creator(String name){ 
      publisher.put("name", name); 
    } 
} 
+0

Chỉ cần thêm một số tính linh hoạt, tôi khuyên bạn nên sử dụng giao diện Bản đồ thay vì trực tiếp bằng cách sử dụng triển khai HashMap. – Davio

+4

Điểm của trường tên là gì? Nó chưa bao giờ được thiết lập. –

59
JsonObject innerObject = new JsonObject(); 
innerObject.addProperty("name", "john"); 

JsonObject jsonObject = new JsonObject(); 
jsonObject.add("publisher", innerObject); 

http://www.javadoc.io/doc/com.google.code.gson/gson


Chỉ cần một FYI: Gson được thực sự làm cho việc chuyển đổi các đối tượng Java đến/từ JSON. Nếu đây là cách chính bạn đang sử dụng Gson, tôi nghĩ rằng bạn đang thiếu điểm.

+0

Hmmh. Cảm ơn; không chắc chắn nếu đó là một lỗi nhỏ trong SO bình luận định dạng ... anyway, để thoát khỏi dấu ngoặc, liên kết là: http://cowtowncoder.com/blog/archives/2009/01/entry_131.html – StaxMan

+0

oh Ok. Tôi nghĩ bạn có thể sử dụng Gson cho mọi thứ. Cảm ơn bạn về thông tin. – Raunak

+1

@Raunak: chắc chắn, bạn _can_ sử dụng nó cho điều đó - nhưng như tôi đã nói, bạn đang thiếu điểm. Bắt đầu với các đối tượng Java. –

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