2014-04-27 92 views
0

我得到一个api的httpresponse,但如何从该响应获取特定的字段?示例返回的响应是这样的:如何从返回的HttpResponse获取特定值

{"test": { 
    "id": 179512, 
    "name": "Test", 
    "IconId": 606, 
    "revisionDate": 139844341200, 
    "Level": 20 
}} 

例如,我只想要id字段。

  HttpClient client = new DefaultHttpClient(); 
      String getURL = url; 
      HttpGet get = new HttpGet(getURL); 
      HttpResponse responseGet = null; 
      try { 
       responseGet = client.execute(get); 
       HttpEntity resEntityGet = responseGet.getEntity(); 
       response = EntityUtils.toString(resEntityGet); 
       Log.e("deneme", response); 
       return response; 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

回答

0

您是否熟悉解析的含义?

解析基本上是采取这样的数据(通常是一个很长的字符串),并将其转换为可以实际使用的数据,或者更简单,至少使用。

你可以自己做......但是这是做的,除非你正在学习很烦人的事情。

您正在使用JSON内容类型。有一堆可以使用的Java JSON解析器库。我最喜欢的是GSON,但它需要一点编码。使用常规的json库可能会更好。转到http://json.org/并滚动到底部以查找可以使用的数百万个库。

+0

我如何能实现GSON以我目前的代码完成什么一个非常简单的例子吗?我需要将HttpEntity转换为Gson吗?将字符串转换为Gson?或者Gson有从我的网址获取数据的东西? – user3316779

1

遗憾的是,到它如何返回它的数据,你应该问的是我应该如何去解析这些数据,这对我来说是静态类型语言的阵痛之一的API。

我个人使用杰克逊在我所有的项目来解析JSON,主要是因为它与春天起到很好。

这里是您尝试使用杰克逊

http://www.mkyong.com/java/jackson-tree-model-example/

+0

我必须下载源码来使用它吗? – user3316779

+0

不,你想要这些库,它们在Maven仓库中可用 – Leon