Gson句柄对象或数组
我有以下课程
public class MyClass {
private List<MyOtherClass> others;
}
public class MyOtherClass {
private String name;
}
我有一个JSON,看起来像这样
{
others: {
name: "val"
}
}
还是这个
{
others: [
{
name: "val"
},
{
name: "val"
}
]
}
我希望能够对这两种JSON格式使用相同的MyClass
。有没有办法让Gson做到这一点
# 1 楼答案
我想出了一个答案
像这样实例化一个Gson对象
那
TypeToken
是一个com.google.gson.reflect.TypeToken
您可以在此处阅读有关解决方案的信息:
https://sites.google.com/site/gson/gson-user-guide#TOC-Serializing-and-Deserializing-Gener
# 2 楼答案
要共享代码并仅将反序列化逻辑应用于特定字段,请执行以下操作:
JSON模型:
抽象类:
特定于字段的类:
# 3 楼答案
感谢您三杯的解决方案
泛型类型也是如此,以防多个类型需要它:
和配置Gson:
# 4 楼答案
在三个cups的基础上,我有以下内容,可以将JsonArray直接反序列化为一个数组
用法: