Gson: как игнорировать @SerializeName при сериализации

1

У меня такой класс

public class Person()
{
    @SerializedName("c")
    public String name;
    @SerializedName("i")
    public int id;
}

Могу ли я сериализовать его таким образом, чтобы сохранить имя поля, а не сериализовать имя без удаления аннотации?

Я не могу изменить объявление класса, потому что эти аннотации используются для сериализации в базе данных, и я хочу сделать читаемую строку этих объектов для отладки.

например: {"name": "Mark", "id": 0} вместо {"c": "Mark", "i": 0}

Теги:
serialization
gson

1 ответ

4

Просто удалите @SerializedName ("c"). По умолчанию он должен быть "именем" после сериализации.

См. Объяснение и пример здесь: http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html.

Это похоже на ваш случай.

Если файл данных не должен редактироваться, как предложил автор в обновлении вопроса, альтернативное решение может изменять или удалять аннотацию @SerializedName ("c") через отражение Java, которое подробно описано здесь: http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html

  • 0
    Я отредактировал свой вопрос, я не могу изменить объявление класса, потому что оно используется для сериализации в базу данных, и я хочу сделать читаемую строку этих объектов для отладки.
  • 1
    Тогда вы можете захотеть изменить или удалить аннотацию с помощью отражения stackoverflow.com/questions/14268981/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню