从String Android中获取JSON对象

时间:2013-03-27 14:26:54

标签: android json

我正在尝试获取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);
                }

4 个答案:

答案 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);

                }