Gson:序列化时如何忽略@SerializeName

时间:2014-05-29 04:30:25

标签: java json serialization gson

我有一个这样的课程

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

我是否可以在不删除注释的情况下以保留字段名称而非序列化名称的方式对其进行序列化?

我无法更改类声明,因为这些注释用于序列化到数据库,我想制作这些对象的可读字符串以进行调试。

例如:{“name”:“Mark”,“id”:0}而不是{“c”:“Mark”,“i”:0}

1 个答案:

答案 0 :(得分:4)

只需删除@SerializedName(" c")。默认情况下,它应该是' name'序列化后。

请参阅此处的说明和示例:http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html

这似乎正是你的情况。

如果不应该编辑数据文件,正如作者在问题更新中建议的那样,替代解决方案可以通过Java反射更改或删除@SerializedName(" c")注释,这将被描述详情请参阅:http://google-gson.googlecode.com/svn/tags/1.2.3/docs/javadocs/com/google/gson/annotations/SerializedName.html