2010-12-15 4 views
24

Мне нужно взаимодействовать с API, и формат ответа (из того, что я прочитал), кажется, плохо структурирован. Я нашел ответ группы Google на несколько аналогичную проблему here, но у меня возникла проблема с внедрением класса Response для обработки Gson.fromJson. Есть ли пример, который мне не хватает, что там?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 класса. Вот пример, который использует джавабе.

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 2014-04-02 11:37:19