2014-04-27 26 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