java - 具有嵌套值的 JSON 到 POJO

标签 java android json retrofit2

所以我有这样的 json 响应:

"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 类的这样的响应:

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?

最佳答案

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

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();
    }

关于java - 具有嵌套值的 JSON 到 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50620797/

相关文章:

java - 如何在 onActivityResult 中了解相机 Intent 后的照片分辨率

java - 两个 Activity 之间的共享方法(android)

java - 如何获取OMElement值?

java - BouncycaSTLe X509 证书链生成,具有有效的根证书 :unknown object in getInstance

android - 避免在 TextView 中的特定位置换行

json - 带有 @ 符号的 JBuilder json 键使用 json-ld 使用 schema.org 元数据

python - 如何正确设置 json 文件中的重复字段

c# - 如何使用 json 通过 SSL 在 IIS 中托管的 WCF 端点上使用基本身份验证?

JavaFX Slider 不调用 valueProperty 的 ChangeListener 来获取最小值和最大值

java - @RequestMapping(headers)、@RequestBody 不起作用