[英]Nested JSON to Java Object mapping using GSON
您好,我被困在使用GSON實驗室將JSON NESTED數組轉換為JAVA對象的過程中。
這是我的JSON字符串
[{\"name\":\"3214657890RootSAPSSE\",\"children\":[{\"name\":\"672BENIAMEEN .Sales Base Market SectionCustomer Representative\"},{\"name\":\"672BENIAMEEN .Sales Base Market SectionPeão\"}]}]
我使用x="[{\\"name\\":\\"MyNode\\"}]";
測試了我的代碼x="[{\\"name\\":\\"MyNode\\"}]";
為此,我的java代碼是
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType();
List<EmployeeJSONObj>l = gson.fromJson(x, type);
System.out.println("hello "+l.get(0).getName());
AND EmployeeJSONObj是類
public class EmployeeJSONObj {
private String name;
EmployeeJSONObj()
{
}
public String getName()
{
return name;
}
}
一切正常。 但是當我將JSON String更改為
[{\"name\":\"3214657890RootSAPSSE\",\"children\":[{\"name\":\"672BENIAMEEN .Sales Base Market SectionCustomer Representative\"},{\"name\":\"672BENIAMEEN .Sales Base Market SectionPeão\"}]}]
這是一棵樹。 我想要通用的解決方案,它可以遍歷整個嵌套的json字符串。 我被困在一個項目的中間。 請幫我解決這個問題。
謝謝
您需要一個班級中的孩子List
,以便Gson可以反序列化children
數組。 這是一個工作示例。
public static void main(String args[]) {
String str = "[{\"name\":\"3214657890RootSAPSSE\",\"children\":[{\"name\":\"672BENIAMEEN .Sales Base Market SectionCustomer Representative\"},{\"name\":\"672BENIAMEEN .Sales Base Market SectionPeão\"}]}]";
System.out.println(str);
Gson gson = new Gson();
java.lang.reflect.Type type = new TypeToken<List<EmployeeJSONObj>>(){}.getType();
List<EmployeeJSONObj>l = gson.fromJson(str, type);
System.out.println(l);
}
public static class EmployeeJSONObj {
private String name;
private List<EmployeeJSONObj> children = new LinkedList<>();
EmployeeJSONObj()
{
}
public String getName()
{
return name;
}
public String toString() {
return "name: " + name + ", children = " + children;
}
}
版畫
[{"name":"3214657890RootSAPSSE","children":[{"name":"672BENIAMEEN .Sales Base Market SectionCustomer Representative"},{"name":"672BENIAMEEN .Sales Base Market SectionPeão"}]}]
[name: 3214657890RootSAPSSE, children = [name: 672BENIAMEEN .Sales Base Market SectionCustomer Representative, children = [], name: 672BENIAMEEN .Sales Base Market SectionPeão, children = []]]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.