【发布时间】:2011-05-25 05:31:15
【问题描述】:
我的数据结构如下
{"testString":"some string","success":true,"reason":null,"data":{"networks":[{"networkId":"1","networkName":"some area","networkType":1},{"networkId":"4","networkName":"another place","networkType":1}]}}
所以基本上它是一个数组对象,第一个键/值对是 1)String 2)Bool 3)String,第四个是 JSONObject
我用作所有这些数据的容器的对象是
public class ContainerData {
private boolean success;
private String reason;
private JSONObject data;
private String testString;
public String getTestString(){
return this.testString;
}
public void setTestString(String test){
this.testString = test;
}
public boolean getSuccess() {
return this.success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public String getReason() {
return this.reason;
}
public void setReason(String reason) {
this.reason = reason;
}
public JSONObject getData() {
return this.data;
}
public void setData(JSONObject data) {
this.data = data;
}
}
我像这样解析它,其中响应对象是 json 字符串
Gson gson = new GsonBuilder().serializeNulls().create();
responseObject = gson.fromJson(response,ContainerData.class);
我可以获取除 JSONObject 之外的所有内容的值,它总是返回一个空数组,例如 {} 关于我搞砸的地方有什么想法吗?
【问题讨论】:
-
为什么使用 JSONObject 而不是反序列化为更友好的结构?为什么使用 JSONObject 而不是 com.google.gson.JsonObject?