首先,我是GSON的开端人员,所以请耐心等待。
我有一组具有这种结构的类:
class Response
Data data;
class Data
List<Item> items;
class Item
String id;
String title;
Private Player;
class Player
String mobile;
我正在使用这些类来检索带有GSON库的JSON。
我使用以下代码成功检索JSON数据:
Gson gson = new Gson();
Response myResponse = gson.fromJson(inputStreamReader, Response.class);
当我调试代码时,我可以看到在Item
内成功检索到myResponse
类值。但是,当我想访问title
类中的Item
变量时,我遇到了问题,因为我所拥有的只是Response
类。
如何在title
班级中获取Item
变量?
任何帮助都是适用的,谢谢你的帮助。
答案 0 :(得分:2)
您可以像这样获取数据: -
Data myData = myResponse.getData();
for(Item myItem : myData.getItems()){
// myItem.getTitle(); will give you the title from each Item
}
这假设您已经为类中的所有字段提供了getter。
答案 1 :(得分:2)
如果您有public
个属性(通常是a bad practice!),您可以这样做:
//This will iterate over all items
for (Item item : myResponse.data.items) {
//for each item now you can get the title
String title = myItem.title;
}
无论如何,正如我所说,你应该为你的属性private
制作,并为这些属性设置getters and setters。这是Java基础知识!
即,在Response
课程中,您应该有类似的内容:
private Data data;
public Data getData(){
return this.data;
}
public void setData(Data data){
this.data = data;
}
同样,您应该在所有课程中拥有private
个属性以及getter和setter。
现在您可以通过以下方式正确访问您的项目:
//Get the Data object with the getter method
Data data = myResponse.getData();
for (Item item : data.getItems()) {
String title = myItem.getTitle();
}