GSON TypeAdapter将超类委托给默认解析器

时间:2014-03-07 09:10:15

标签: java json gson

想象一下以下的类层次结构:

所有类型的母亲

public abstract class AbstractSuperType {
   private String id;
   private long time;
}

基本用户类型

public abstract class AbstractUserItem extends AbstractSuperType {
    private String uid;
    private String name;
}

Sepacial用户数据类型1

public class UserItemType1 extends AbstractUserItem {
    private EnumType type;
    private String typeValue;
}

此示例JSON与它一起使用:

{
  "id":"12345aabc",
  "time":123456789012,
  "uid":"cca112233",
  "name":"Bob Jones"
  "a":2,
  "b":3.12345,
  "c": { some_special_value }
}

EnumType字段未在JSON中声明,而是取决于存在的键。 typeValue字段也会根据已解析的EnumType填充(例如,如果密钥 a b 存在于JSON中,则为{{1} 1}}数据及其值在键 c

我在解析这个问题时遇到了一些问题:我可以解析Type 1EnumType罚款,但我不想手工解析层次结构的其余部分,因为

  1. 默认解析器可以正常使用
  2. 如果基础对象发生变化,我也必须更新此代码
  3. 我的问题是:有没有办法将前2层委托给默认解析器,然后接管并执行我的自定义解析?

    由于

0 个答案:

没有答案