【问题标题】:How to send create a JSON string and send it from server to android?如何发送创建 JSON 字符串并将其从服务器发送到 android?
【发布时间】:2011-09-16 08:33:00
【问题描述】:

在我的应用程序中,用户将执行 HTTPrequest 以从服务器检索数据。

目前在服务器端,我执行一个数据库选择语句,然后使用ResultSetDynaBean 检索每一行并转换为一个对象并存储在ArrayList 中。这一切都很好。

 ArrayList<ParkingSpot> spotsList

然后我使用 google GSON 库将每个对象转换为 JSON 字符串

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 个

如您所见,我将每个添加到字符串 ArrayList。我不认为这是正确的。

我应该如何将信息发送到安卓手机。

从 GSON 库我可以在 android 手机上调用以下代码

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

但我不知道如何从我的Servlet 的响应中检索 jsonString(我也不知道如何在 servlet 端设置它)

【问题讨论】:

    标签: java android json servlets gson


    【解决方案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

    【讨论】:

      【解决方案2】:

      我看到你使用 gson。它真的很容易:

      服务器端:

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

      这就是服务器端的全部内容。

      客户端:

      要建立连接并阅读响应,请使用 marqss 的答案。要将 json 放入列表中,请使用以下命令:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-03
        • 2012-05-21
        • 2015-10-18
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 2014-04-25
        • 2015-10-20
        相关资源
        最近更新 更多