2012-01-19 3 views
0

Я занимаюсь внедрением IntentService, который я буду использовать для выполнения вызовов веб-службы RESTful, а затем планирую использовать sendBroadcast для трансляции результатов.IntentService JSON to Object Conversion

Я получаю JSON от вызовов веб-службы.

После получения строки JSON я не уверен, где я должен разбирать текст и преобразовывать его в объект (ы) (используя GSON). Будет ли я лучше делать все мои объекты домена Parcelable и отправлять объекты в широковещательной сети или просто отправлять текст JSON и преобразовывать их, когда мне действительно нужны объекты? Любой другой совет?

Спасибо.

ответ

0

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

Для каждого объекта модели у меня есть класс Translator. Например, Thing и ThingTranslator. Таким образом, я могу передавать строки между действиями, и у меня есть одно место, где я могу сериализовать и десериализовать, поэтому, если что-то не так или что-то, что необходимо обновить (например, сервисная схема объектов объектов и т. Д.) Есть только одно место для поиска.

+0

Спасибо. Меня не очень интересует метод анализа JSON в объектах, поскольку я хочу, чтобы выполнить преобразование, и особенно при использовании IntentService. Должен ли я транслировать объект и преобразовывать его в точке использования или преобразовывать в IntentSerice и транслировать объект (или другой подход). – Steve

+0

Я не знаю, понимаю ли я этот вопрос. Если это - я должен пойти Parcelable или просто сериализовать/десериализировать мои объекты вручную, я бы пошел с последним. Причина, по которой я делаю это, как описано, заключается в том, что я не хочу, чтобы каждый класс модели, который я создал, имел логику парцевания в классе. Я являюсь сильным сторонником SRP и простоты кода, поэтому мои объекты модели - это не что иное, как модель. Сериализация, проверка и т. Д. Все делается извне. У Thing есть свойства и методы, которые представляют цель Thing, ThingTranslator и ThingValidator и ThingProvider выполняют свои конкретные задачи и т. Д. – Rich