我使用google gson-2.2.1库来解析JSON的大型响应。Android:解析大型json响应
我必须解析一个JSON响应,其结构可能会有所不同。
第一种情况,当响应包含不止一个团队:
"Details":{
"Role":"abc",
"Team":[
{
"active":"yes",
"primary":"yes",
"content":"abc"
},
{
"active":"yes",
"primary":"yes",
"content":"xyz"
}
],
第二种情况下,当只有一个团队传递:
"Details":{
"Role":"abc",
"Team":
{
"active":"yes",
"primary":"yes",
"content":"abc"
}
}
有用于解析我的基类:
class Details {
public String Role;
public ArrayList<PlayerTeams> Team = new ArrayList<PlayerTeams>();
PlayerTeams Team; // when JsonObject
}
class PlayerTeams {
public String active;
public String primary;
public String content;
}
问题是我不能使用ArrayList<PlayerTeams>
当我只有其中一个nd将它作为JsonObject返回。
Gson可以识别JSON响应的静态格式。我可以通过检查“Team”键是否为JsonArray
或JsonObject
的实例来动态追踪完整响应,但如果有更好的解决方案可用,那么这将非常有用。
编辑: 如果我的回答更加动感..
"Details":{
"Role":"abc",
"Team":
{
"active":"yes",
"primary":"yes",
"content":"abc"
"Test":
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}
}
}
在我编辑的问题,我面对的问题,而我的反应是更加动态.. Team
和Test
可以JsonArray
或JsonObject
。它确实骚扰我,因为有时候对象可能会在更多数据的时候数组,当单个数据时可能对象,当没有数据的时候可能是数组。回应没有一致性。
如果你读JSONArray代替的JSONObject会发生什么?你有没有得到任何异常或null? – 2012-07-21 12:25:09
如果您为JsonObject使用ArrayList,则Google Gson会抛出异常。 – 2012-07-21 12:27:35
您可以尝试读取catch块中的JSONObject。 – 2012-07-21 12:28:51