2017-02-01 27 views
1

我試圖映射以下回應:地圖籠罩響應成POJO

{ 
    "data": { 
     "id": "1574083", 
     "username": "snoopdogg", 
     "full_name": "Snoop Dogg", 
     "profile_picture": "http://distillery.s3.amazonaws.com/profiles/profile_1574083_75sq_1295469061.jpg", 
     "bio": "This is my bio", 
     "website": "http://snoopdogg.com", 
     "counts": { 
      "media": 1320, 
      "follows": 420, 
      "followed_by": 3410 
     } 
} 

爲對象,其中我只是想找回用戶名,FULL_NAME,和id字段。

例:是這樣的:

public class User{ 
    String id; 
    String username; 
    String full_name; 

    // getters + setters 

} 

是否有這樣做,而不必首先存儲數據對象到地圖的方法嗎?

+0

將完整的'json'映射到對象並獲取所需的字段有什麼問題? – Arpit

回答

2

使用傑克遜的API。它應該很簡單:

ObjectMapper mapper = new ObjectMapper(); 
User user = mapper.readValue(jsonString, User.class); //jsonString is your actual json string. 

您可能想要調整您的User類以匹配JSON字符串。例如。您的用戶類需要有一個「數據」字段,如List<Data> data;,其中「數據」是另一個POJO。您可以在「Data」pojo中添加「id」,「userName」等字段。

+1

此外,Jackson圖書館還會爲您提供XML和CSV等對象映射器,如果這些是您可能需要的。 –

+1

超級,謝謝你VHS - 那就是訣竅。 – Dayna

0

您可以通過手工做的,例如,正則表達式或利用任何JSON庫像傑克遜,GSON等

0

有了GSON,它非常簡單。假設你的json存儲在一個String jsonString變量中。

Gson gson = new Gson(); 
YourObject = gson.fromJson(jsonString, YourObject.class); 

雖然我不知道會發生什麼,因爲你的jsonString沒有一個叫User關鍵。但是,如果您首先從jsonString中提取data並將其命名爲POJO Data,則該功能應起作用。