Java 基于另一个字段对字段进行条件反序列化';s值
我有这个JSON模型:Java 基于另一个字段对字段进行条件反序列化';s值,java,android,json,gson,Java,Android,Json,Gson,我有这个JSON模型: { state (int), result (object) } 结果可能包含以下模型之一: public class Person { someField; } public class Book { someOtherFields; } 我的意思是,我正在寻找一种方法来做到这一点: if(result.state == 1) then deserialize result as a Person else if(resul
{
state (int),
result (object)
}
结果可能包含以下模型之一:
public class Person {
someField;
}
public class Book {
someOtherFields;
}
我的意思是,我正在寻找一种方法来做到这一点:
if(result.state == 1)
then deserialize result as a Person
else if(result.state == 2)
then deserialize result as a Book
else throw exception;
我不是JAVA或Android的人。这只是我陷入的一个糟糕的境地。您知道如何在Android应用程序中使用GSON lib实现这一点吗?您可以使用cutom反序列化器实现这一点
如果Book
和Person
具有名为Element
的父类,则可以创建此反序列化器(未测试)
然后使用
Element element= gson.fromJson(jsonInput, Element.class);
自定义反序列化程序会这样做
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Element.class, new CustomDeserializer());
Gson gson = gsonBuilder.create();
Element element= gson.fromJson(jsonInput, Element.class);