Я определяю модели для сериализации/десериализации Gson, и я пытаюсь найти лучший способ, учитывая мой конкретный ответ JSON.Определение модели для Gson с дополнительными атрибутами
Каждый API вызов в моем приложении имеет такой же формат:
- статуса: статус вызова
- сообщения: сообщение, если выше статус «ошибка»
- данные: любые данные, которые пользователь запросил
В моей модели я действительно забочусь только о данных. Например, если пользователь вызывает/get_buddies, я просто хочу получить список всех приятелей. Но я также «забочусь» о статусе, верно? Если по какой-либо причине статус «ошибка» (пользователь не вошел в систему или что-то еще), я хочу сообщить пользователю, что и Toast сообщение (это плохой пример, как это никогда не произойдет) ...
Как создать мою модель, чтобы я мог читать статус и сообщение, но так, чтобы, если я упакую эту модель как JSON на , отправьте, я не упакую их.
Моя первая мысль из моего исследования, чтобы иметь класс с именем GetBuddiesCall
public class GetBuddiesCall {
String status;
String message;
ArrayList<Buddy> buddies;
}
, а затем класс Buddy
public class Buddy {
String username;
String firstName;
String lastName;
// etc.
}
Затем Gson будет смотреть на эти две модели и иметь возможность десериализации соответственно. Затем, при попытке сериализации, я использую только модель Buddy, так как статус и сообщение не нужны для связи клиент-сервер. Есть ли лучший способ, чем это? Я знаю, что есть модификаторы, которые вы можете использовать как переходные, что заставляет Gson смотреть на это поле при упаковке JSON.
Спасибо за любую помощь!
Вы можете исключить поля из сериализации с помощью ключевого слова transient, но я думаю, что это может применяться для обоих преобразований в/из json. – Submersed