【发布时间】:2017-02-10 10:31:33
【问题描述】:
我有一个这样的 JSON 字符串:
{
"r": [
{
"pic": "1.jpg",
"name": "Name1"
},
{
"pic": "2.jpg",
"name": "Name2"
},
{
"pic": "3.jpg",
"name": "Name3"
}
]
}
我要解析成这个 POJO 模型:
public class Catalog {
@SerializedName("r")
@Expose
private List<JSONObject> r = new ArrayList<JSONObject>();
public List<JSONObject> getR() {
return r;
}
public void setR(List<JSONObject> r) {
this.r = r;
}
}
我是这样解析的:
Catalog cat = new Gson().fromJson(jsonString,Catalog.class);
但终于得到了这个 json
{
"r": [
{
"nameValuePairs": {}
},
{
"nameValuePairs": {}
},
{
"nameValuePairs": {}
}
]
}
请注意,我不想使用com.google.gson.JsonObject。
我想使用org.json.JSONObject。由于我的几乎所有代码都使用它,如何实现这一点?
【问题讨论】:
-
实现您的
JsonDeseriailzer<org.json.JSONObject>并将其注册到GsonBuilder和.registerTypeAdapter(JSONObject.class, jsonObjectJsonDeserializerInstance)。但是,为什么需要使用JSONObject而不是带有pic和name字段的Java 映射? -
你为什么要
org.json.JSONObject?? -
将
JSONObjects的JSONArray转换为JSONObjects的List的原因是什么?您可以在JSONArray和List中迭代JSONObjects。
标签: java android json arraylist gson