Tôi đã xem Google Gson như một plugin JSON tiềm năng. Bất cứ ai cũng có thể cung cấp một số hình thức hướng dẫn về cách tôi có thể tạo Java từ chuỗi JSON này không?
Google Gson hỗ trợ thuốc generic và đậu lồng nhau. Trong []
JSON biểu thị một mảng và nên ánh xạ tới một bộ sưu tập Java, chẳng hạn như List
hoặc chỉ là một mảng Java đơn giản. Các {}
trong JSON đại diện cho một đối tượng và phải ứng với một Java Map
hay chỉ một số lớp JavaBean.
Bạn có một đối tượng JSON với một số thuộc tính trong đó thuộc groups
tính đại diện cho một mảng các đối tượng lồng nhau cùng loại. Điều này có thể được phân tích cú pháp với Gson theo cách sau:
package com.stackoverflow.q1688099;
import java.util.List;
import com.google.gson.Gson;
public class Test {
public static void main(String... args) throws Exception {
String json =
"{"
+ "'title': 'Computing and Information systems',"
+ "'id' : 1,"
+ "'children' : 'true',"
+ "'groups' : [{"
+ "'title' : 'Level one CIS',"
+ "'id' : 2,"
+ "'children' : 'true',"
+ "'groups' : [{"
+ "'title' : 'Intro To Computing and Internet',"
+ "'id' : 3,"
+ "'children': 'false',"
+ "'groups':[]"
+ "}]"
+ "}]"
+ "}";
// Now do the magic.
Data data = new Gson().fromJson(json, Data.class);
// Show it.
System.out.println(data);
}
}
class Data {
private String title;
private Long id;
private Boolean children;
private List<Data> groups;
public String getTitle() { return title; }
public Long getId() { return id; }
public Boolean getChildren() { return children; }
public List<Data> getGroups() { return groups; }
public void setTitle(String title) { this.title = title; }
public void setId(Long id) { this.id = id; }
public void setChildren(Boolean children) { this.children = children; }
public void setGroups(List<Data> groups) { this.groups = groups; }
public String toString() {
return String.format("title:%s,id:%d,children:%s,groups:%s", title, id, children, groups);
}
}
Khá đơn giản phải không? Chỉ cần có một JavaBean phù hợp và gọi Gson#fromJson()
.
Xem thêm: