开发者

Optimize JSonArray for Loop

Today, I'm trying to optimize my JSONArray regarding android developer documentation. I was supposed to optimize it but there is error message coming out.

JSONArray infojson = json.getJSONArray("getInfo");          
for(int i=0;i < infojson.length();i++){                                     
    JSONObject e = infojson.getJSONObject(i);
    hm = new HashMap<String, Object>();
    hm.put(MYNAME, e.getString("uname"));
    hm.put(MYAGE, e.getString("uage"));
}

And I've optimized above coding as follow

JSONArray infojson = jsonObject.getJSONArray("getInfo");
for (Object o : infojson ) {
    JSONObject js开发者_开发技巧onLineItem = (JSONObject) o;
    String myname = jsonLineItem.getString("uname");
    String myage = jsonLineItem.getString("uage");
}

Unfortunately, I got the following error message occuring on "infojson ) {"

Can only iterate over an array or an instance of java.lang.Iterable


You can't use JSONArray with the that syntax as it doesn't implement Iterable interface. As a side note, the micro performance improvement you get probably won't affect your application performance as JSON results that are returned from the WebService are typically not large in size.


You're getting that error because JSONArray doesn't implement the Iterable interface.

In short, there's no clean way to solve this; you'd have to serialize the JSONObjects into your custom class.

To save you time though, using (Object one: all) over (i=0; i < all.getLength(); i++) won't give you any runtime improvements.

Just stick to the normal for loop.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜