首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >专门使用GraphQl解析JSON数据

专门使用GraphQl解析JSON数据
EN

Stack Overflow用户
提问于 2017-03-03 15:45:55
回答 1查看 1.6K关注 0票数 3

我正在尝试使用retrofit来解析JSON数据,但我使用的是GraphQL。附件是我试图解析的数据的一个示例。我尝试通过这个链接学习教程:http://www.androidhive.info/2012/01/android-json-parsing-tutorial/,但他从中提取的JSON数据来自REST API。

以下是GraphQL数据:

代码语言:javascript
复制
 {
 "data": {
"allEvents": {
  "edges": [
    {
      "node": {
        "title": "UWB Weekly Meeting"
      }
    },
    {
      "node": {
        "title": "Startup Weekly"
      }
    },
    {
      "node": {
        "title": "Microsoft Capstone Opportunity"
      }
    },
    {
      "node": {
        "title": "UWB Camp Kickoff"
      }
    },
    {
      "node": {
        "title": "Agusto's Winter Event"
      }
    }
  ]
}

}}

EN

回答 1

Stack Overflow用户

发布于 2017-03-03 21:43:49

首先,您需要一个POJO (普通老式Java类),它具有JSON响应中所期望的结构。让我们称它为Event。在您的示例中,它有一个标题,这就是我们需要的类:

代码语言:javascript
复制
public class Event {
    private String id;
    private String title;

    public Event() {

    }

    public Event(String id, String title) {
        this.id = id;
        this.title = title;
    }

    @Override
    public String toString() {
        return "Event{" +
                "id='" + id + '\'' +
                ", title='" + title + '\'' +
                '}';
    }

    public String getId() {
      return id;
    }

    public String getTitle() {
        return title;
    }

}

然后,您可以使用Gson库将响应JSON解析为事件对象列表:

代码语言:javascript
复制
Gson gson = new Gson();
try {
    JSONArray jsonEvents = new JSONObject(body).getJSONObject("data").getJSONObject("allEvents").getJSONArray("edges");
    for (int i = 0; i < jsonEvents.length(); ++i) {
        JSONObject event = jsonEvents.getJSONObject(i).getJSONObject("node");
        Log.v("TAG", gson.fromJson(event.toString(), Event.class).toString());
    }
} catch (JSONException e) {
    e.printStackTrace();
}

你可以找到一个完整的示例here

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42573336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档