为什么JSONObject获取不到Android中嵌套字段的值?

Why can't JSONObject get the values of nested fields in Android?

我正在构建一个 android 应用程序,它从 API 获取天气数据。但是,API 调用不适用于嵌套字段。该应用程序将整个 JSON 数据作为一个 JSON 对象。它适用于单个字段(例如:"results")但不适用于嵌套字段。这是我的 JSON 目标代码:

JSONObject latlong = new JSONObject(json);
    String lat = latlong.getInt("results.geometry.location.lat") + "";
    String lng = latlong.getInt("results.geometry.location.lng") + "";

这是 link 到 JSON 数据:

http://maps.googleapis.com/maps/api/geocode/json?components=postal_code:24728&sensor=false

请帮忙!

JSON 主要由对象(用 { } 括起来)和数组(用 [] 括起来)组成。

因此,需要使用JSON对象和JSON数组的组合来遍历JSON文件的树。

JSONObject class 和 JSONArray 都有一个 'getJSONObject' 和一个 'getJSONArray' 方法来访问内部对象和数组。

所以,像这样的东西应该可以工作:

    JSONObject latLong = new JSONObject(json).getJSONArray("results")
                                             .getJSONObject("geometry")
                                             .getJSONObject("location");

    String lat = String.valueOf(latLong.getDouble("lat"));
    String lng = String.valueOf(latLong.getDouble("lng"));

尝试一下,如果需要的话可以做出正确的调整,因为我自己还没有尝试过。

让我知道它是否有效 ;)