Weather API如何通过JSON获取数据,间隔为9小时

时间:2017-08-17 03:53:39

标签: android json

我有a weather API我希望根据我们当前的日期和时间列表预测温度有9小时的差距

如果当前时间是12:00,那么它应该显示温度为9:00然后是18:00,然后第二天温度为3:00小时,然后是12:00然后21:00,使用webservice这样长达5天。

ArrayList<ForecastWeather> product_new_arrayy = new ArrayList<>();
        for(int z = 0; z < arrJson.length(); z++)
        {
        JSONObject object3e = arrJson.getJSONObject(z);
        Log.v("hour", object3e.toString());

        JSONArray houre = object3e.getJSONArray("hour");
        //Toast.makeText(this, "" + hour, Toast.LENGTH_SHORT).show();
        // int x=foo;


        stimee = object3e.getString("date");


        List<String> answers = new ArrayList<String>();
        for(int x=0; x<houre.length(); x++) {


        JSONObject persone = (JSONObject) houre.get(x);


        timee = persone.getString("time");

        answers.add(timee);






        String[] daysArray = new String[] {"sunday","monday","tuesday","wednesday","thursday","friday","saturday"};
        String day = "";

        int dayOfWeek =0;

        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm");
        Date datee;
        try {
        datee = formatter.parse(timee);
        Calendar c = Calendar.getInstance();
        c.setTime(datee);
        dayOfWeek = c.get(Calendar.DAY_OF_WEEK)-1;
        if (dayOfWeek < 0) {
        dayOfWeek += 7;
        }
        day = daysArray[dayOfWeek];
        } catch (Exception e) {
        e.printStackTrace();
        }

        ForecastWeather fw = new ForecastWeather();
        fw.setTemperature(persone.getString("temp_c") + (char) 0x00B0 + "C" );
        timee = persone.getString("time");
        String timeappoch =persone.getString("time_epoch");

        int timea = Integer.parseInt(timeappoch);
        int addd= timea+32400000;

        Log.v("Add",""+ addd );


        fw.setTime(day + "\n\n" + timee  );
        product_new_arrayy.add(fw);





        Log.v("array", timee );
//                            
        jsonArrayResponsee  += "Day at: " + day +" " + timee +" \n\n" + "Temp:" + namee + (char) 0x00B0 + "C" + "\n\n";



        }
        Log.v("HHH", answers.toString());
        Calendar cal = Calendar.getInstance();

        SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd");
        String datetime = dateformat.format(cal.getTime());

        if(answers.contains(datetime)){



        }


        }
        ArrayList <ForecastWeather> all = new ArrayList <>();
        all.addAll(product_new_arrayy);

        showAllProducts(all);

我得到所有日子和每小时的温度,但我想要9小时的差距

1 个答案:

答案 0 :(得分:0)

您可以使用ASynk进行短暂的网络通话。但为什么要有9个小时的差距。使用asynk,每次打开应用程序时都可以获得json响应。这样您的信息就会非常重要和有效。