【发布时间】:2013-04-08 13:39:09
【问题描述】:
我有一个 JSONObject,我将它传递给一个方法以处理成 ArrayLists。
{
"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,因为它表示多个相同类型的数据对象的列表,而不仅仅是单个数据对象。跨度>
-
所以你会建议传递一个 JSONArray 而不是对象给方法?
-
尽量用GSON代替自己解析。它更快且易于实施。