Gson使用扩展类Java反序列化Json

时间:2018-08-08 14:22:44

标签: java json gson json-deserialization

我有一个json文件,并尝试读取序列化的值, 我创建了一个自定义反序列化以获取扩展类,这是我的自定义Derserialize;

switch (type.getAsString()) {
                case "ToLowerRule":
                    return context.deserialize(jsonObject, 
                        ToLowerRule.class);
                case "ParserDataRule":
                    return context.deserialize(jsonObject, 
                            ParserDataRule.class);
                case "CityRule":
                    return context.deserialize(jsonObject, 
                            CityRule.class);

和我的课程;

public class ToLowerRule extends BasicRule {...}
public class ParserDataRule extends BasicRule {...}
public class CityRule extends ParserDataRule {...}

和Gson对象;

Gson gson = new GsonBuilder().registerTypeAdapter(BasicRule.class, 
                              new CustomRuleDeserializer()).create();

将其反序列化为ToLowerRule和ParseDataRule,但将其反序列化为CityRule作为ParserDataRule可以帮助我解决这个问题。

我希望CityRule反序列化为CityRule而不是扩展对象(ParseDataRule)

谢谢。

0 个答案:

没有答案