У меня на самом деле есть несколько вопросов, касающихся Gson.
Первый, если Gson установит значение поля на null
, когда предоставленное JSON не содержит ни одного поля, соответствующего ему.
Например, когда предоставленное JSON содержит поле name
, но класс, который я десериализирую, содержит name
и avatar
, будет ли avatar
нулевым?
Следующий вопрос в отношение к вышеупомянутому. Когда я установил бы поле с уже предопределенным значением, Gson переопределит его, даже если оно не предоставлено в JSON (переопределяет его на ноль), или оно просто проигнорирует поле и перейдет?
И, наконец, я хотел бы знать, установит ли Gson значение name
, когда я буду использовать @SerializedName("username")
, но JSON содержит name
.
Я хочу обновить свой API, включая некоторые плохие Наименования полей JSON, но я хочу сделать его переход для людей, использующих его, как можно более плавным, поэтому я хочу по-прежнему (временно) предоставлять старое имя поля, а также обеспечивать поддержку нового. Возможно ли это, используя аннотацию @SerializedName
?
Я все еще новичок в Gson, а руководство пользователя Gson не помогло мне ответить на эти два вопроса c вопросы (или я упустил это, что также было бы возможно).