【发布时间】:2015-09-28 13:17:20
【问题描述】:
我有这个从图形 API 到朋友共同朋友的 JSON 响应
{"context":{"mutual_friends":{"data":[{"name":"T Ate Hondrad","id":"10206554047069160"},{"name":"Pushkar Verma","id":"10203898838385903"}],"paging":{"cursors":{"before":"MTAyMDY1NTQwNDcwNjkxNjAZD","after":"MTAyMDM4OTg4MzgzODU5MDMZD"}},"summary":{"total_count":2}},"id":"dXNlcl9jb250ZAXh0OgGQEqErvwsZCMyDY9RoYFTqaRBTPrIksArHbUAn6t92n2ttzeW8av8W1ZBZAZAZCz4g7yNZCAo8db4WHArx6irNdS9eM6wB6TjQGhZC7ZCnDezjI2PjaU4ZD"},"id":"164585393877089"}
我正在使用这种方法
JSONObject json = new JSONObject(jsonText);
if (json.has("context")) {
JSONObject context = json.getJSONObject("context");
if (context.has("mutual_friends")) {
JSONObject mutual_friends = new JSONObject("mutual_friends");
if (mutual_friends.has("data")) {
JSONArray data = mutual_friends.getJSONArray("data");
}
}
}
使用 Gson
com.app.model.Context ctx = new Gson().fromJson(jsonText, com.app.model.Context.class);
问题是我无法读取 data JSONObjects 数组
jsonText是一个带有json的String变量
上下文类
public class Context
{
private String id;
private Mutual_friends mutual_friends;
public String getId ()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public Mutual_friends getMutual_friends ()
{
return mutual_friends;
}
public void setMutual_friends (Mutual_friends mutual_friends)
{
this.mutual_friends = mutual_friends;
}
@Override
public String toString()
{
return "ClassPojo [id = "+id+", mutual_friends = "+mutual_friends+"]";
}
}
Mutual_friends 类
public class Mutual_friends {
private Data[] data;
public Data[] getData() {
return data;
}
public void setData(Data[] data) {
this.data = data;
}
@Override
public String toString() {
return "ClassMutualFrinds [ data = " + data + "]";
}
}
数据类
public class Data
{
private String id;
private String name;
public String getId ()
{
return id;
}
public void setId (String id)
{
this.id = id;
}
public String getName ()
{
return name;
}
public void setName (String name)
{
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Data data = (Data) o;
return !(id != null ? !id.equals(data.id) : data.id != null);
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
@Override
public String toString()
{
return "ClassPojo [id = "+id+", name = "+name+"]";
}
}
【问题讨论】:
-
请发帖
com.app.model.Contextclass -
你试过调试吗?
-
@jens 两种逻辑都无法读取 Mutual_friends
-
请说明为什么不赞成
-
如果你能解释一下为什么对我的问题投反对票会更好