带有嵌套值的 JSON 到 POJO [英] JSON to POJO with nested values
本文介绍了带有嵌套值的 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屋!
查看全文