2012-03-06 38 views
1

我從服務器接收以這種形式如何從JSON響應嵌套屬性和圖像

{"error":null,"id":1,"result": 
{"admin":false, 
"firstname":"Jason", 
"id":346,"idHotel":109, 
"idVendor":null, 
"lastname":"Butcher", 
"sessionkey":"3c8a17ae47a6d131b1a14b44a1d8f9a9", 
"urlAvatar":"avatar_316_mjm.jpg", 
"urlThumb":"thumb_316_mjm.jpg"} 
} 

的響應,並希望得到的各種單打屬性,

例如

Boolean error=..; 
String admin=....; 
String idHotel=...; 

以及圖像

+0

哎,我看這種反應是最簡單的一種,我認爲你需要在Android首次閱讀有關JSON格式化和JSON解析得到肯定關於它是如何工作的。 – MKJParekh 2012-03-06 10:43:54

回答

1

您應該創建一個像這樣的包裝類:

public class Response { 
    public boolean error; 
    public int id; 
    public Result result; 
} 

public class Result { 
    ... 
} 

那麼簡單,您可以利用GSON的JSON反序列化到你的類:

Response response = new Response(); 
Gson gson = new Gson(); 
response = gson.fromJson(response, Response.class); 

而且還有很多其他的漂亮的東西,你可以這樣做:https://sites.google.com/site/gson/gson-user-guide

哦,忘了一個重要的事情! 記住要更改Gson庫上的命名空間,我有問題讓它在htc電話上運行。 http://code.google.com/p/jarjar/downloads/list

文檔:你可以用罐子罐子環節上做到這http://code.google.com/p/jarjar/wiki/CommandLineDocs

+0

謝謝你的答案。你能否給我關於命名空間問題的更多細節? – AndreaF 2012-03-06 10:53:43

+0

是的原因,我的應用程序無法在一些HTC話機上運行。因此,我發現了以下問題報告:http://code.google.com/p/google-gson/issues/detail?id = 255解決方案在評論9中描述的位置。 – DNRN 2012-03-06 10:58:03

+0

我試過用這個sintax但沒有成功......我應該如何在第二個代碼塊中傳遞服務器響應? – AndreaF 2012-03-07 09:02:16