我使用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