java反序列化Json,Gson启动,自定义类型选择器
我有3种不同类型的json。我想根据json本身中的字段将它们反序列化为对象
我选择了格森·霍恩来完成这项任务。 这里有一个非常符合我需要的类型选择器的例子
于是我写道:
public static Base buildFromJson(String json) {
GsonFireBuilder builder = new GsonFireBuilder().registerTypeSelector(Base.class, new TypeSelector<Base>() {
@Override
public Class<? extends Base> getClassForElement(JsonElement jsonElement) {
String type = jsonElement.getAsJsonObject().get("typ").getAsString();
if (Type.A.toString().equalsIgnoreCase(type)) { return A.class; }
else if (Type.B.toString().equalsIgnoreCase(type)) { return B.class; }
else if (Type.C.toString().equalsIgnoreCase(type)) { return C.class; }
else { return null; }
}
});
Gson gson = builder.createGson();
//...
}
但我被困住了。我需要知道如何返回A
、B
或C
的实例。
gson
接受gson.fromJson(json, Base.class);
,在那里自定义类型选择器应该应用。
但我不知道如何返回所需的实例
共 (0) 个答案