首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenWeatherMap JSON雨雪预报

OpenWeatherMap JSON雨雪预报
EN

Stack Overflow用户
提问于 2018-02-22 12:45:01
回答 1查看 1.2K关注 0票数 1

当参数雨雪没有值时,我面临着迫使代码顺利运行的问题。实际上,只要有这些参数的值,如果没有,它就会循环。

我已经包含了gson库来帮助我获得JSON对象/字符串/double等值。

代码语言:javascript
复制
   for (int l=0; l<40; l++) {
        Forecast fcath = new Forecast();
        fcath.setMain_temp(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("main").getAsJsonObject().get("temp").getAsDouble());
        fcath.setWeather_description(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("weather").getAsJsonArray().get(0).getAsJsonObject().get("description").getAsString());
        fcath.setClouds_all(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("clouds").getAsJsonObject().get("all").getAsInt());
        fcath.setWind_speed(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("wind").getAsJsonObject().get("speed").getAsDouble());
        fcath.setDt_txt(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("dt_txt").getAsString());
        fcath.setRain(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("rain").getAsJsonObject().get("3h").getAsDouble());
        fcath.setSnow(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("snow").getAsJsonObject().get("3h").getAsDouble());
        f.add(fcath);
        System.out.println("Date: " + f.get(l).getDt_txt() + " Temp: " + f.get(l).getMain_temp() + " Celsius " + " Chance of Rain: " + f.get(l).getRain() + " Chance of Snow: " + f.get(l).getSnow());
    }

如果没有fcath.setRain和fcath.setSnow代码行,输出如下:工作输出照片

假设天气预报没有下雨的机会,例如: fcath.setRain(obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("rain").getAsJsonObject().get("3h").getAsDouble());== {},它给了我NullPointerException

NullPointerException照片

EN

回答 1

Stack Overflow用户

发布于 2018-02-22 13:52:27

用所提供的信息仍然很难说,但似乎如果没有下雨的机会,那么可能。

代码语言:javascript
复制
 obj_fcath.get("list").getAsJsonArray().get(l).getAsJsonObject().get("rain").getAsJsonObject() 

null。则不能从空对象执行get("3h").getAsDouble()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48927778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档