带有嵌套值的 JSON 到 POJO [英] JSON to POJO with nested values

查看:37
本文介绍了带有嵌套值的 JSON 到 POJO的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以我有这样的json响应:

So I have such json response:

"data": [
    {
        "id": 11881,
        "date": "2018-03-26T16:22:08",
        "date_gmt": "2018-03-26T14:22:08",
        "guid": {
            "rendered": "http://google.com"
        },
        "modified": "2018-03-26T16:22:08",
        "modified_gmt": "2018-03-26T14:22:08",
        "slug": "some text",
        "status": "some status",
        "type": "post",
        "link": "http://google.com",
        "title": {
            "rendered": "some title"
        }
}
]

如果我有这样的类,我如何解析对 POJO 类的这种响应:

How can I parse such response to POJO class if I would have such classes:

public class Response{
    private List<Post> data;
}

public class Post{
    private String id;
    private String date;
    private String date_gmt;
    private String guid;
}

问题是它有像 guid 和 title 这样的嵌套值,我如何将它解析为一个 POJO 类,我不需要为每个嵌套值创建 pojo?

The problem is that it has nested values like guid and title how can I parse it to one POJO class that I wouldn't need to create pojo for each nested value?

推荐答案

您可以创建如下所述的 Pojo.class

You can create Pojo.class as mentioned below

public class pojo {


private Title title;
private String link;
private String type;
private String status;
private String slug;
private String modified_gmt;
private String modified;
private Guid guid;
private String date_gmt;
private String date;
private int id;

public Title getTitle() {
    return title;
}

public void setTitle(Title title) {
    this.title = title;
}

public String getLink() {
    return link;
}

public void setLink(String link) {
    this.link = link;
}

public String getType() {
    return type;
}

public void setType(String type) {
    this.type = type;
}

public String getStatus() {
    return status;
}

public void setStatus(String status) {
    this.status = status;
}

public String getSlug() {
    return slug;
}

public void setSlug(String slug) {
    this.slug = slug;
}

public String getModified_gmt() {
    return modified_gmt;
}

public void setModified_gmt(String modified_gmt) {
    this.modified_gmt = modified_gmt;
}

public String getModified() {
    return modified;
}

public void setModified(String modified) {
    this.modified = modified;
}

public Guid getGuid() {
    return guid;
}

public void setGuid(Guid guid) {
    this.guid = guid;
}

public String getDate_gmt() {
    return date_gmt;
}

public void setDate_gmt(String date_gmt) {
    this.date_gmt = date_gmt;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public static class Title {
    private String rendered;

    public String getRendered() {
        return rendered;
    }

    public void setRendered(String rendered) {
        this.rendered = rendered;
    }
}

public static class Guid {
    private String rendered;

    public String getRendered() {
        return rendered;
    }

    public void setRendered(String rendered) {
        this.rendered = rendered;
    }
}
 }

你可以解析列表

 try {
        JSONObject jsonObject = new JSONObject("YOUR_RESPOSE");
        JSONArray data = jsonObject.getJSONArray("data");
        Type listType = new TypeToken<ArrayList<pojo>>() {
        }.getType();
        ArrayList<pojo>  list =new Gson().fromJson(data.toString(), listType);

    } catch (JSONException e) {
        e.printStackTrace();
    }

这篇关于带有嵌套值的 JSON 到 POJO的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆