假设我有以下结构:系列化和儿童
abstract class foo{}
class bar1 extends foo{
int demo1 = 0;
}
class bar2 extends foo{
int demo1 = 0;
int demo2 = 0;
}
class bar3 extends foo{}
通常当我需要发送一个JSON,我用下面的代码
Gson gson = new Gson()
gson.toJson(bar1);
Recieving结束
Gson gson = new Gson()
bar1 test = gson.fromJson(gsonString, bar1);
这里的问题是我需要发送b ar1/bar2/bar3并取回原始对象 - 含义我不知道当前的JSON应该被解析回。由于bar1/bar2/bar3数组正在被发送回来,因此增加了另一层复杂性。
例:
//Issue: is the second param bar1 bar2 or bar3?
//I put a questionmark where the issues occur, due to the fact
//that I wouldn't know on the recieving side whether I'm going
//to recieve bar1/bar2/bar3
? test = gson.fromJson(gsonString, ?);
我试图存储FOO的类型,但没有能够解析回来也没有办法知道的类型。
不清楚你在问什么。 'GSon.fromJson()'返回一个你忽略的值,那么它怎么会有一个问题呢? – EJP
我不会无视它!根据参数中的对象,它返回该对象。问题是我不知道Json收到的是什么对象。 – Gabrielus
'gson.fromJson(gsonString,bar1);'不会将结果存储到变量中,* ergo *它会忽略它。 – EJP