如何创建json模型类?

时间:2011-08-08 14:09:22

标签: java android json android-listview

我正在尝试在我的项目中使用本教程来显示带有json数组的listview:

https://bobbyprabowo.wordpress.com/2010/11/25/android-json-processing-using-gson-and-display-in-on-a-listview/

这是LocationModel.java和LocationList.java。

这是我的json:

{
   "data":{
      "totalQuests":"11",
      "active":[
         {
            "id":"1",
            "name":"TITLENAME",
            "description":"text",
            "text_when_complete":""
         },
         {
            "id":"2",
            "name":"TITELNAME2",
            "description":"Text2",
            "text_when_complete":""
         }
      ],
      "completed":[
         {
            "id":"3",
            "name":"TITLENAMECOMP",
            "description":"textCOMP",
            "text_when_complete":""
         }
      ]
   },
   "returnCode":0,
   "returnCodeDescription":null
}

我为这个json字符串写了LocationModel有问题。

如何从“活动”和“完成”中获取元素?

感谢您的帮助。

编辑:

感谢MByD的好建议;) 不幸的是,我仍然不知道如何使用它。

在这段代码中,我从json获得了一个“数据”元素。

我在数据对象里面:{“data”:{。 接下来我想从“活跃”中获取元素...... 我该如何使用你的建议?接下来是什么?这是对的吗?

private List<LocationModel> data;
public List<LocationModel> getQuests() {

    return data;
}
public void setLocationList(List<LocationModel> data) {
    this.data = data;
}

2 个答案:

答案 0 :(得分:4)

类结构应该是这样的(根据你的Json字符串的结构)你应该添加getter和setter,因为我没有包含它们:

class MyClass {
    Data data;
    Integer returnCode;
    Integer returnCodeDescription;
}

class Data {
    String totalRequests;
    Status[] active;
    Status[] completed;
}

class Status {
    String id;
    String name;
    String description;
    String textWhenCompleted;
}

解析它:

MyClass class = new Gson().fromJson(yourJsonString, MyClass.class);

答案 1 :(得分:0)

您可以尝试使用类生成器工具。

https://github.com/BrunoAlexandreMendesMartins/CleverModels