Java 如果发生JSONException,则恢复循环

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

我正在解析来自foursquare的json响应。有一些json对象丢失了,所以我抓住了它。但是,如果发生异常,如何继续for循环

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,我会将其作为备选方案