为什么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"));
尝试一下,如果需要的话可以做出正确的调整,因为我自己还没有尝试过。
让我知道它是否有效 ;)
我正在构建一个 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"));
尝试一下,如果需要的话可以做出正确的调整,因为我自己还没有尝试过。
让我知道它是否有效 ;)