我正在尝试获取DATA数组中的信息,但一直没有得到任何结果。我正在从Dark Sky API解析这些数据:
hourly: {
summary: "Mostly cloudy later this morning.",
icon: "partly-cloudy-day",
data: [
{
time: 1364389200,
summary: "Partly Cloudy",
icon: "partly-cloudy-night",
precipIntensity: 0,
temperature: 29.8,
windSpeed: 2.44,
windBearing: 60,
cloudCover: 0.41,
humidity: 0.88,
pressure: 831.54,
visibility: 6.15
},
{
time: 1364392800,
summary: "Partly Cloudy",
icon: "partly-cloudy-day",
precipIntensity: 0,
temperature: 29.26,
windSpeed: 2.95,
windBearing: 45,
cloudCover: 0.36,
humidity: 0.88,
pressure: 832.05,
visibility: 6.14
}..................}
我想遍历数据数组。
我通过这样做获得每小时数据:
String hourly = json.getString("hourly");
但是,我没有从小时字符串中获取数据数组。我错过了什么?
我在正确的道路上:
JSONObject h = json.getJSONObject("hourly");
String d = json.getString("data");
JSONArray a = h.getJSONArray("data");
for(int i = 0; i < a.length(); i++){
// Pulling items from the array
String s = h.getString("summary");
String t = h.getString("temperature");
aq.id(R.id.tv).text("Summary: " + s + "Temp: " + t);
}
答案 0 :(得分:2)
您需要使用JSONArray
,正如您自己提到的那样,array
中的数据为JSONObject
。
JSONArray dataArray = hourlyObj.getJSONArray("data");
答案 1 :(得分:2)
您的Hourly
是一个JSONObject,并且使用org.json API在其中包含一个JSONArray
命名数据,您可以使用以下代码轻松循环抛出它们:
JSONObject hourly = new JSONObject(json.getString("hourly"));
JSONArray array = hourly.getJSONArray("data");
for (int i=0; i< array.length(); i++){
JSONObject obj = data.getJSONObject(i);
//do whatever you want with your data
}
答案 2 :(得分:1)
使用JSONArray
获取data
值,JSONObject
获取hourly
。
每小时对象
JSONObject hourlyObj = json.getJSONObject("hourly");
数据阵列
JSONArray yourdataArray = hourlyObj.getJSONArray("data");
// loop it
for(int i=0;i<jsonArray.length();i++){
JSONObject json_data = jsonArray.getJSONObject(i);
String time = json_data.getString("time");
// and so on
}
您将获得数据中的所有值。
答案 3 :(得分:0)
以下是一个可以帮助您的示例代码段。
JSONObject jObj = new JSONObject(results);
JSONArray albums = jObj.getJSONArray("pickups");
for (int i = 0; i < albums.length(); i++) {
JSONObject c = albums.getJSONObject(i);
String id = c.getString("id");
Record objRecord=new Record();
objRecord.setId(c.getString("id"));
objRecord.setName(c.getString("name"));
objRecord.setNumber(c.getString("number"));
objRecord.setTime(c.getString("time"));
PickupList.arrayList.add(objRecord);
}