我是用Gson以稍微“不同”的方式,并且我想知道以下是否可能...
我想要更改枚举的默认序列化/反序列化格式,以便它使用完全限定的类名,但保持对@SerializedName注释的支持。 基本上,考虑以下枚举...
我想要更改枚举的默认序列化/反序列化格式,以便它使用完全限定的类名,但保持对@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的意图操作作为枚举来处理,以便我可以编写switch语句而不是一堆丑陋的if-else和字符串比较,并且我希望支持注释,以便我可以在同一个枚举中包含自定义预先存在的操作字符串,如Intent.ACTION_VIEW等)。
那么,有人知道是否可以注册一个类型适配器,如果存在@SerializedName字段,则会回退吗?我只需在自己的TypeAdapter中检查那个注释吗?
提前致谢。