Как отправить создать JSON-строку и отправить ее с сервера на Android? - PullRequest
0 голосов
/ 16 июня 2011

В моем приложении пользователь будет предварительно формировать HTTPrequest для получения данных с сервера.

В настоящий момент на стороне сервера я предварительно формирую оператор выбора базы данных, а затем использую ResultSetDynaBean для получениякаждую строку и преобразовать в объект и сохранить в ArrayList.это все работает отлично.

 ArrayList<ParkingSpot> spotsList

Затем я конвертирую eachobject в строку JSON с помощью библиотеки Google 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 вышеперечисленных строк, которые мне нужно отправить

Как видите, я добавляю каждую из них в строку ArrayList.я не думаю, что это правильно.

Как мне отправлять информацию на телефон Android.

Из библиотеки GSON я могу позвонить по телефону ниже на Android

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

Но я делаюне знаю, как извлечь jsonString из ответа моего Servlet (я также не знаю, как установить его на стороне сервлета)

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Я вижу, что вы используете gson. С ним действительно легко:

Serverside:

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

Это все на стороне сервера.

на стороне клиента:

Чтобы установить соединение и прочитать ответ, используйте ответ marqss. Чтобы получить JSON в список, используйте это:

List<ParkingSpot> list = gson.fromJson(json, new TypeToken<List<ParkingSpot>>(){}.getType());
1 голос
/ 16 июня 2011

У меня нет большого опыта разбора строк 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...