我试图将GSON库用于我的第一个应用程序。
我的课程有问题。
我从后端返回一个像这样的JSonArray:
[
{'id':1, 'className':{'id':1} },
{'id':2, 'className':{'id':2} }
]
我的App上有2节课:
public class Class1{
private int id;
private Class2 className;
private int classNameId;
public Class1(){
//function set that return error
setClassNameId(className.getId())
}
}
public class Class2{
private int id;
private int function getId(){
return id;
}
}
问题是,当我尝试:
Gson gson = new GsonBuilder().create();
Type listType = new TypeToken<List<Class1>>(){}.getType();
ArrayList<Class1> classess= gson.fromJson(JsonArrayString, listType);
它在Class1构造函数中返回异常:
setClassNameId(className.getId())
因为className
null 。
那么可以通过GSon从子类获取值并在Constructor上设置吗?
答案 0 :(得分:0)
试试这个
=SUMPRODUCTOFTWOROWS(COLUMN(); ROW(); ROW($A$1))
示例:
public class Class1 {
@Expose
@SerializedName("className")
private ClassName className;
@Expose
@SerializedName("id")
private int id;
public static class ClassName {
@Expose
@SerializedName("id")
private int id;
}
}