2012-05-01 2 views
0

Я разрабатываю приложение для Android, которое использует веб-сервис для получения изображения, которое будет отображаться в приложении.Java Parse Json Byte Array

Я использую JSON в качестве своего формата. Весь процесс соединения работает как шарм, но мне нужна помощь в анализе ответа из запроса webservice.

Это мой результат:

[255,12,87,183,232,34,64,121,182,23] 

Конечно, это не реальные данные, им просто пытаюсь объяснить, как данные выглядит, когда я получить его. Итак, мой вопрос: как я разбираю эти данные в массив байтов?

Вот мое подключение код далеко:

HttpResponse response = httpClient.execute(request); 
HttpEntity responseEntity = response.getEntity(); 
InputStream stream = responseEntity.getContent(); 
String string_result= convertStreamToString(stream); 

Это прекрасно работает и переменная «STRING_RESULT» содержит данные, которые были получены. Итак, если кто-то знает, как просто разобрать эту строку JSON, содержащую байт-массив, я был бы признателен за помощь.

ответ

3

Вот пример разбора этого массива byte[] используя незаменимые GSON library:

String str = "[255,12,87,183,232,34,64,121,182,23]"; 
Gson gson = new Gson(); 
byte[] parsed = gson.fromJson(str, byte[].class); 
for (byte b : parsed) { 
    System.out.println(b); 
} 

Этот код выхода:

-1 
12 
87 
-73 
-24 
34 
64 
121 
-74 
23 

Обратите внимание, что Java byte подписанную и, таким образом, вы получите отрицательный номера.

+0

Так -1 -73 -24 -74 23 в основном то же самое, как 255,12,87,183,232,34,64,121,182,23 – parek

+0

@Parek Да это java способ сделать это. –

+2

@Parek Кстати, если я правильно понял, что вам нужно, массив байтов предназначен для передачи содержимого элемента blob. Однако я бы сказал, что кодировка base64 (http://en.wikipedia.org/wiki/Base64) послужит вам лучше и значительно уменьшит размер запроса. –