获取OpenWeatherMap JSON数据进行查看

时间:2017-07-20 15:45:54

标签: json asp.net-mvc openweathermap

我正在尝试使用OpenWeatherMap为MVC构建的网站提供天气预报。 型号如下:

{
    public class OpenWeatherMap
    {
        public List<Data> list;
    }

    public class Data
    {
        public Main main { get; set; }
        public List<Weather> weather { get; set; }
        public Clouds clouds { get; set; }
        public Wind wind { get; set; }
        public Rain rain { get; set; }
        public string dt_txt { get; set; }
    }

    public class Main
    {
        public double temp { get; set; }
        public double temp_min { get; set; }
        public double temp_max { get; set; }
        public double pressure { get; set; }
        public double sea_level { get; set; }
        public double grnd_level { get; set; }
        public int humidity { get; set; }
        public double temp_kf { get; set; }
    }

    public class Weather
    {
        public int id { get; set; }
        public string main { get; set; }
        public string description { get; set; }
        public string icon { get; set; }
    }

    public class Clouds
    {
        public int all { get; set; }
    }

    public class Wind
    {
        public double speed { get; set; }
        public double deg { get; set; }
    }   
    public class Rain
    { 
        public double rain { get; set; }                  
    }

    public class Sys
    {
        public string pod { get; set; }

    }
}

控制器如下:

    public OpenWeatherMap GetLocalWeather()
    {

        string apiUrl = BaseURL + "id=" + CityID + "&appid=" + AppID + "&units=metric";

        string result = RequestHandler.Process(apiUrl);

        OpenWeatherMap lWeather = new JavaScriptSerializer().Deserialize<OpenWeatherMap>(result);


        return lWeather;
    }

    public ActionResult Index()
    {
        OpenWeatherMap localWeather = GetLocalWeather();

      return View();
     }

我有两个问题:

  1. 将数据传递给View的最佳方法是什么,并注意到JSON数据现在又一次会省略项目,例如今天的降雨量数据消失了。
  2. 报道此类活动的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

这将解决您的问题。

public class Weather { 
    private double _rain; 
    public double Rain { 
        get { if     (_rain != null) return _rain; else return 0.0; } 
        set { _rain = value; } } 
}