JSON VS простая обработка строк для анализа HttpRequest в Android - PullRequest
4 голосов
/ 18 февраля 2011

Я часто сталкиваюсь с необходимостью извлечения некоторой информации на удаленный сервер с помощью запроса HttpPost. Представьте, что мы имеем дело с погодным приложением, получающим некоторую информацию о погоде.

Сервер отправляет long inputtream, и мы заинтересованы в извлечении некоторой информации из этого потока. Имейте в виду, что мы находимся в среде, связанной с памятью.

У нас есть два варианта:

1) Мы используем синтаксический анализатор JSON или XML для извлечения информации.

Это рекомендуемый метод, но он имеет некоторые недостатки:

  • Это мучительно многословно, особенно если мы хотим получить мало информации из большого потока.

  • Это должно быть быстрее и более дружественным к сборщику мусора, но я не уверен, что это относится к вышеупомянутому случаю (мало информации из большого потока).

2) Мы используем простую обработку строк (SSM):

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

Также у этого метода есть некоторые недостатки:

  • Я думаю, что этот метод настоятельно не рекомендуется
  • Чем больше информации мы извлекаем, тем медленнее этот метод. Я думаю, что есть критическая точка на кривой производительности, где SSM становится медленнее.
  • Может быть менее гибким, чем JSON или другой анализатор акций.

Но есть и некоторые важные преимущества:

  • Краткий, понятный человеку код.
  • Может быть трудно изменить существующий фильтр, но гораздо проще создать новый.

Подводя итог, вопрос:

1) Является ли простое манипулирование строками подходом типа «нет-нет» или целесообразно рассмотреть его использование? 2) Если вы ответили «да» («большой нет-нет») на предыдущий вопрос, не могли бы вы объяснить причину?

ура :) 1066 *

Ответы [ 2 ]

3 голосов
/ 18 февраля 2011

Я бы запросил информацию в формате JSON (а не в XML, который является более многословным без каких-либо преимуществ) и использовал бы анализатор на основе событий, чтобы найти требуемые данные, обрабатывая поток в строке во время его чтения с сервера.

Это будет очень просто для памяти и не потребует никаких изменений в работе сервера. Он также будет гораздо более надежным и устойчивым к изменениям, чем любое решение для нарезки строк, которое вы могли бы собрать вместе.

У меня на сайте есть свободно распространяемый очень облегченный синтаксический анализатор для JSON. Другие доступны от http://www.json.org.

0 голосов
/ 18 февраля 2011

Второе предложение использовать JSON. Парсер, с которым я хорошо поработал, это Джексон . Он предлагает как POJO, так и STAX-API для низкого потребления памяти.

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