У меня такой класс
public class Person()
{
@SerializedName("c")
public String name;
@SerializedName("i")
public int id;
}
Могу ли я сериализовать его таким образом, чтобы сохранить имя поля, а не сериализовать имя без удаления аннотации?
Я не могу изменить объявление класса, потому что эти аннотации используются для сериализации в базе данных, и я хочу сделать читаемую строку этих объектов для отладки.
например: {"name": "Mark", "id": 0} вместо {"c": "Mark", "i": 0}
Просто удалите @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