1

首先,我是 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);

当我调试代码时,我可以看到ItemmyResponse. 但是,当我想访问Classtitle中的变量时遇到问题,Item因为我只有一个ResponseClass。

如何获取类title中的变量Item

任何帮助都是apprciated,感谢您的帮助。

4

2 回答 2

2

您可以像这样获取数据:-

Data myData = myResponse.getData();
for(Item myItem : myData.getItems()){
    // myItem.getTitle(); will give you the title from each Item
}

这是假设您对类中的所有字段都有 getter。

于 2013-09-26T11:27:22.990 回答
2

如果您有public属性(这通常是一种不好的做法!),您可以这样做:

//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;
}

无论如何,正如我所说,您应该创建您的 attributes private,并为这些属性设置 getter 和 setter。这就是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();
}
于 2013-09-26T11:45:16.433 回答