Java 如果发生JSONException,则恢复循环
我正在解析来自foursquare的json响应。有一些json对象丢失了,所以我抓住了它。但是,如果发生异常,如何继续for循环Java 如果发生JSONException,则恢复循环,java,json,Java,Json,我正在解析来自foursquare的json响应。有一些json对象丢失了,所以我抓住了它。但是,如果发生异常,如何继续for循环 if (length > 0) { for (int i = 0; i < length; i++) { JSONObject venueObject = venues.getJSONObject(i); String id = venueObject.getString("id"); Strin
if (length > 0) {
for (int i = 0; i < length; i++) {
JSONObject venueObject = venues.getJSONObject(i);
String id = venueObject.getString("id");
String name = venueObject.getString("name");
JSONObject location = venueObject.getJSONObject("location");
String lat = String.valueOf(location.getDouble("lat"));
String lng = String.valueOf(location.getDouble("lng"));
HashMap<String, String> venue = new HashMap<>();
venue.put("id", id);
venue.put("name", name);
venue.put("lat", lat);
venue.put("lng", lng);
String address = "";
try {
JSONArray addressArray = location.getJSONArray("formattedAddress");
address = addressArray.getString(i);
} catch (JSONException j) {
address = location.getString("country");
} finally {
venue.put("address", address);
venueList.add(venue);
//continue for loop somehow
}
}
}
if(长度>0){
for(int i=0;i
您不需要做任何事情-如果抛出一个JSONException,则执行catch和finally块,代码继续像以前一样执行,因此for循环继续
但是有一件事——如果您希望某些JSON对象不存在,那么在尝试访问它们之前最好先进行检查,而不是访问它们并捕获异常。当您说缺少某些对象时,是否最好将映射配置为忽略缺少的属性?一旦你把所有东西都映射成Java对象,你就可以根据需要进行验证了。我不能忽略这个地址,因为它是我的应用程序所必需的。因为这个位置总是有一个country JSON对象,如果缺少formattedAddress,我会将其作为备选方案