为什么可以';t JSONObject是否在Android中获取嵌套字段的值?
我正在构建一个android应用程序,它可以从API获取天气数据。但是,API调用不适用于嵌套字段。应用程序将整个JSON数据作为JSONObject接收。它适用于单个字段(例如:“结果”),但不适用于嵌套字段。以下是我的JSON对象代码:为什么可以';t JSONObject是否在Android中获取嵌套字段的值?,android,json,parsing,google-geocoder,Android,Json,Parsing,Google Geocoder,我正在构建一个android应用程序,它可以从API获取天气数据。但是,API调用不适用于嵌套字段。应用程序将整个JSON数据作为JSONObject接收。它适用于单个字段(例如:“结果”),但不适用于嵌套字段。以下是我的JSON对象代码: JSONObject latlong = new JSONObject(json); String lat = latlong.getInt("results.geometry.location.lat") + ""; String lng
JSONObject latlong = new JSONObject(json);
String lat = latlong.getInt("results.geometry.location.lat") + "";
String lng = latlong.getInt("results.geometry.location.lng") + "";
以下是指向JSON数据的链接:
请帮忙 JSON主要由对象(用{}括起来)和数组(用[]括起来)组成 因此,有必要结合使用JSONObject和JSONArray来遍历JSON文件的树 JSONObject类和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"));
尝试一下,如果需要的话做出正确的调整,因为我自己还没有尝试过
让我知道它是否有效;) JSON主要由对象(用{}括起来)和数组(用[]括起来)组成 因此,有必要结合使用JSONObject和JSONArray来遍历JSON文件的树 JSONObject类和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"));
尝试一下,如果需要的话做出正确的调整,因为我自己还没有尝试过
让我知道它是否有效;) 你为什么不试试?在这种情况下,这会让你的生活更轻松。你为什么不试试呢?在这种情况下,这会让你的生活更轻松。是的,谢谢你,我明白了!代码中唯一需要更改的是,在JSONArray上调用getJSONObject时,必须传递一个int。是的,谢谢,我知道了!代码中唯一需要更改的是,在JSONArray上调用getJSONObject时,必须传递一个int。