2015-07-20 76 views
1

如何爲以下JSON腳本創建用於gson的javabean?使用gson創建複雜的json對象

{ 
    "header": [ 
     { 
      "title": { 
       "attempts": 3, 
       "required": true 
      } 
     }, 
     { 
      "on": { 
       "next": "abcd", 
       "event": "continue" 
      } 
     }, 
     { 
      "on": { 
       "next": "", 
       "event": "break" 
      } 
     } 
    ] 
} 

我正在嘗試爲此JSON輸出構建javabean。我無法重複字段名稱on

請提出任何解決方案。

+0

好吧,你的問題是:

public class Response { private List<Entry> header; private class Entry { private Title title; private On on; } private class Title { int attempts; boolean required; } private class On { String next, event; } } 

您可以用main()方法類似測試嗎? –

+0

我想通過gson構建上面的json腳本。爲此,我無法創建java bean – Martin

+0

我得到錯誤多個字段名稱與「否」 – Martin

回答

1

您將需要多個類來完成此操作。我做了命名的一些假設,但這些應該足夠了:

public static void main(String[] args) { 
    // The JSON from your post 
    String json = "{\"header\":[{\"title\":{\"attempts\":3,\"required\":true}},{\"on\":{\"next\":\"abcd\",\"event\":\"continue\"}},{\"on\":{\"next\":\"\",\"event\":\"break\"}}]}"; 

    Gson gson = new GsonBuilder().setPrettyPrinting().create(); 
    Response response = gson.fromJson(json, Response.class); 

    System.out.println(response.header.get(0).title.attempts); // 3 
    System.out.println(response.header.get(1).on.next); // abcd 
    System.out.println(gson.toJson(response)); // Produces the exact same JSON as the original 
} 
+0

它的作品像魅力。 – Martin