0
比方说,我有两个对象:Person和ReqSingUp,ReqSingUp包含Person。有一种方法可以知道json代表了哪种类型?
现在,如果我尝试:
Person p=new Person("dan","lala");
ReqSingUp reqSingUp=new ReqSingUp(p);
String s = gson.toJson(reqSingUp,ReqSingUp.class);
Object o = gson.fromJson(s, Object.class);
if (o instanceof ReqSingUp) {
System.out.println("it's ReqSingUp");
}
if (o instanceof Person) {
System.out.println("it's person");
}
它不符合任何条件(不instanceof ReqSingUp
而不是instanceof Person
)。
有没有办法知道它是哪种类型?
在此先感谢。
不,我认为没有办法。可能是一个工作是使用json标记之一来表示对象的类型。 – kosa
你看过导游吗?这可能有所帮助:https://sites.google.com/site/gson/gson-user-guide#TOC-Serializing-and-Deserializing-Collection-with-Objects-of-Arbitrary-Types – TJR
这不是一个变体这个问题? http://stackoverflow.com/questions/3629596/deserializing-an-abstract-class-in-gson –