Разбор простой строки JSon в Android - PullRequest
0 голосов
/ 28 сентября 2010

У меня есть следующий код:

String response = webService.webGet("");  the response of the web service

String LargeImage = new Gson().fromJson(response,String.class);

byte[] imageByteArray = Base64.decode(LargeImage);

ответ выглядит так: «iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCA ...» изображение в кодировке Base64, содержащее около 400 000 символов.

Ответ приходит очень быстро от веб-службы. Когда он пытается разобрать его с Gson через некоторое время (например, 20-30 секунд), я получаю сообщение об ошибке из-за нехватки памяти. Как я могу разобрать эту простую строку без Gson, она должна быть довольно простой, но я не знаю, как это сделать. Пожалуйста, посоветуй мне. Спасибо за ваше время

Ответы [ 2 ]

2 голосов
/ 29 сентября 2010

Измените кодировку изображения Base64 на URL-адрес, по которому вы можете загрузить изображение напрямую.

Затем получите flexjson 2.1, и вы сможете очень легко проанализировать JSON на Android в несколько строк. Это также быстрее, чем GSON.

http://flexjson.sourceforge.net

Но из вашего поста похоже, что вы просто отправляете изображение Base64 через JSON в виде одной строки. Не нужно использовать JSON в этом случае. Если вы не планируете обернуть некоторые метаданные в будущем.

Также пропустите сохранение изображения в БД. Просто запишите его в файловую систему и укажите путь к файлу в БД, связанный с вашим объектом. Гораздо проще отлаживать, когда вам интересно, какой образ вы скачали и т. Д.

1 голос
/ 28 сентября 2010

ответ похож на: «iVBORw0KGgoAAAANSUhEUgAAAZAAAAGQCA ...» изображение в кодировке Base64, содержащее около 400 000 символов.

У вас есть , чтобы шутить*

Пожалуйста, сообщите мне.

Найдите разумный веб-сервис и переключитесь на него.Если кто-то из вашей фирмы написал веб-сервис, уволите его.Если вы написали веб-сервис, запустите себя.Я не вижу необходимости возвращать изображение - особенно такое массовое - в кодировке Base64, обернутое в JSON.

Тем временем вы можете попробовать встроенный анализатор JSON для Android а не Гсон.

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