我有一個JSONObject,我傳遞給一個方法來處理到ArrayLists
。JSONObject vs JARRAY獲取數組長度
{
"set0" :
{
"title" : "Do you win?",
"answer" : "1",
"imgUrl" : "imag",
"id" : "1"
},
"set1" :
{
"title" : "Did you loose?",
"answer" : "1",
"imgUrl" : "imag",
"id" : "2"
}
}
該方法的結構是這樣的:
questions(JSONObject result){
// initialization
for(int i=0;i < result.length();i++){
question_list.add(result.getJSONObject("set"+i).getString("title"));
answer_list.add(result.getJSONObject("set"+i).getString("answer"));
img_list.add(result.getJSONObject("set"+i).getString("imgUrl"));
question_batch.add(result.getJSONObject("set"+i).getInt("id"));
}
// rest of code
}
我平常見到的jsonarray被用於循環條件,而不是把JSONObject本身,當我的JSONObject變大,但在相同的結構,貼以上將result.length()
開始產生一個錯誤的結果,這是一個不正確的實現人誰想要遍歷他們的jsonobject?
看起來你的數據應該存儲爲JSONArray,而不是JSONObject,因爲它代表了一個相同類型的多個數據對象的列表,而不僅僅是一個數據對象。 – FoamyGuy 2013-04-08 13:42:05
所以你會建議通過一個JSONArray比對象的方法? – kabuto178 2013-04-08 13:44:49
嘗試使用GSON代替自己的解析。它更快,更容易實現。 – 2013-04-08 13:48:18