我在轻微的“不同”的方式使用GSON,我想知道如果下面是可能的...更改默认枚举系列化和反序列化在GSON
我想改变缺省序列/ enums的反序列化格式,以便它使用完全限定的类名,但在所述枚举上保留对@SerializedName注解的支持。基本上,给出下面的枚举...
package com.example;
public class MyClass {
public enum MyEnum {
OPTION_ONE,
OPTION_TWO,
@SerializedName("someSpecialName")
OPTION_THREE
}
}
我想下面的是真实的......
gson.toJson(MyEnum.OPTION_ONE) == "com.example.MyClass.MyEnum.OPTION_ONE"
&&
gson.toJson(MyEnum.OPTION_TWO) == "com.example.MyClass.MyEnum.OPTION_TWO"
&&
gson.toJson(MyEnum.OPTION_THREE) == "someSpecialName"
,反之亦然。我试图建立一个小的库,允许我将android的intent作为枚举对待,这样我就可以编写switch语句而不是一堆丑陋的if-elses +字符串比较,并且我想支持注释,以便我还可以在同一个枚举中包含像Intent.ACTION_VIEW等自定义预先存在的操作字符串)。
所以有谁知道是否可以注册一个类型适配器,如果@SerializedName字段存在可以退回?我是否必须自己在自己的TypeAdapter中检查该注释?
在此先感谢。
要离开这一点,因为有些人在没有回答的情况下,其他人有更好的答案,用较少的复制意面。 – Geoff