2010-12-15 7 views
24

APIとやりとりしなければならない応答フォーマット(私が読んだものから)は構造が貧弱です。私は幾分似通った問題hereにGoogleグループの回答を見つけましたが、Gson.fromJsonを処理するResponseクラスを実装するのに問題があります。そこには欠けている例がありますか?Java - Gsonの解析が入れ子になっています

{ 

"response":{ 
    "reference": 1023, 
    "data":{ 
     "user":{ 
      "id":"210", 
      "firstName":"john", 
      "lastName":"smith", 
      "email":"[email protected]", 
      "phone":"", 
      "linkedid":{ 
       "id":"238" 
      } 
     } 
    } 
} 

} 

答えて

44

JSONは{}Map<String, Object>やJavaBeanクラスで表すことができるオブジェクト。ここでは、Javabeanを使用する例を示します。

public class ResponseData { 
    private Response response; 
    // +getter+setter 

    public static class Response { 
     private int reference; 
     private Data data; 
     // +getters+setters 
    } 

    public static class Data { 
     private User user; 
     // +getter+setter 
    } 

    public static class User { 
     private String id; 
     private String firstName; 
     private String lastName; 
     private String email; 
     private String phone; 
     private Linkedid linkedid; 
     // +getters+setters 
    } 

    public static class Linkedid { 
     private String id; 
     // +getter+setter 
    } 
} 

次のようにそれを使用してください:

ResponseData responseData = new Gson().fromJson(json, ResponseData.class); 
+0

GSONは内部クラスを必要とするのはなぜ? – Chetan

+1

@漢方:これはGSON要件ではありません。 – BalusC

+2

これらを印刷しようとすると、NULLポインタ例外が発生します。 –

関連する問題