2013-08-05 23 views
-1

我正在閱讀兩個URL的JSON數據,並使用谷歌GSON將它們解析爲兩個我自定義的java對象。我需要幫助提出一個靜態方法來使用Gson來執行JSON到Java的解析。理想情況下,如果它是單一返回類型,我會設法自己想出方法,但由於返回類型是兩個不同的對象,所以我無法弄清楚。任何提示,以獲得先機將是偉大的。從URL讀取JSON數據的實用程序方法

+2

返回一個'對象[]'或調用兩個不同的方法。 –

+0

我想要一個單一的方法。 – user2605846

回答

0

您可以使用下面的方法閱讀這兩個網址。

public static <T> T fromJsonToJava(String jsonUrl, Class<T> type) throws IOException { 
     URL url = new URL(jsonUrl); 
     URLConnection conn = url.openConnection(); 
     InputStream in = conn.getInputStream();   
     Reader reader = new InputStreamReader(in); 
     Gson gson = new Gson(); 
     return gson.fromJson(reader, type); 

} 
+0

這正是我所期待的。非常感謝。有效。 – user2605846

0

你可以使用org.json庫:http://mvnrepository.com/artifact/org.json/json/20090211

樣品JSON從HTTP響應:

{ "key":"value" } 

代碼來獲取valuekey的:

import org.apache.http.client.methods.HttpGet; 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.util.EntityUtils; 
import org.json.JSONObject; 

HttpGet http = new HttpGet(url); 
HttpResponse response = client.execute(http); 
HttpEntity entity = response.getEntity(); 

// To parse the JSON response 
// EntityUtils.toString(entity) is { "key":"value" } 
JSONObject jsonObject = new JSONObject(EntityUtils.toString(entity)); 
String value = jsonObject.getString("key"); 
+0

對不起,這不是我正在尋找。我已經有了解析代碼。就像我剛纔提到的,我只需要一個靜態方法,它接受兩個URL作爲輸入,並根據URL中包含的數據返回不同類型的對象。原因是,將來我們可以有更多的URL和多種返回類型。所以我只需要一種實用方法。而已。 – user2605846