所以我有这样的 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/