2011-06-16 84 views
0

在我的應用程序中,用戶將執行HTTPrequest以從服務器檢索數據。如何發送創建一個JSON字符串,並將其從服務器發送到android?

目前在服務器端,我執行數據庫選擇語句,然後使用ResultSetDynaBean來檢索每一行並將其轉換爲對象並存儲在ArrayList中。這一切工作正常。

ArrayList<ParkingSpot> spotsList 

然後我使用谷歌GSON庫

ArrayList<String> jsonStrings = new ArrayList<String>(); 
    Gson gson = new Gson(); 
    for (ParkingSpot ps : spotsList) { 
     String json = gson.toJson(ps); 
     jsonStrings.add(json); 
    } 

每個JSON字符串看起來像這樣

{"address":"York Road","zone":"Green","startTime":7.0,"endTime":24.0,"timeAdded":"Jun 16, 2011 11:53:27 AM","psId":898} 

最多可以有上述串1000轉換eachobject到一個JSON字符串我需要發送

正如你所看到的我將每個添加到字符串ArrayList。我不認爲這是正確的。

我應該如何去信息發送到Android手機。

從GSON庫我可以調用下面的Android手機上

Spot spot = gson.fromJson(jsonString, Spot.class); 
      System.out.println(spot); 

但我不知道如何從響應檢索jsonString我Servlet(我也不知道怎麼就設置該servlet側要麼)

回答

1

我看你使用GSON。這是與它很容易:

Serverside集團:

ArrayList<ParkingSpot> spotsList = ... 
String json = gson.toJson(spotsList); 

多數民衆贊成在服務器端。

客戶方:

要進行連接,並讀取響應使用marqss的答案。要使json進入列表,請使用:

List<ParkingSpot> list = gson.fromJson(json, new TypeToken<List<ParkingSpot>>(){}.getType()); 
1

我沒有與解析JSON字符串太多的經驗,但來檢索響應字符串,你可以使用以下命令:

HttpClient client = new DefaultHttpClient(); 
HttpGet request = new HttpGet("http://www.google.com"); //replace URL to your service 

httpResponse = client.execute(request); 
HttpEntity entity = httpResponse.getEntity(); 

if(entity != null){ 
    InputStream is = entity.getContent(); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); 
    StringBuilder sb = new StringBuilder(); 

    String line = null; 
    while((line = reader.readLine()) != null){ 
     sb.append(line + "\n"); 
    } 
    JSONString = sb.toString(); 
} 

你當然也可以使用POST方法。

希望這有助於:d

相關問題