2012-03-06 21 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