我有一个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