后台代码:
private async void btnSearch_Click(object sender, RoutedEventArgs e) { HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Add("apikey", "你的apikey"); string url = "?city=" + tbCity.Text; HttpResponseMessage response = await httpClient.GetAsync(new Uri(url)); response.EnsureSuccessStatusCode(); string result = await response.Content.ReadAsStringAsync(); DeserilizeJson(result); } private void DeserilizeJson(string result) { JObject jsonobj = JObject.Parse(result); JArray jsonarry = JArray.Parse(jsonobj["HeWeather data service 3.0"].ToString()); WeathernowData(jsonarry); DailyforecastData(jsonarry); SuggestionsData(jsonarry); } private void WeathernowData(JArray jsonarry) { Weathernow now = new Weathernow(); JToken weather = jsonarry[0]["now"]; now.Txt = weather["cond"]["txt"].ToString(); now.Tmp = weather["tmp"].ToString(); now.Aqi = jsonarry[0]["aqi"]["city"]["aqi"].ToString(); now.Pm25 = jsonarry[0]["aqi"]["city"]["pm25"].ToString(); now.Qlty = jsonarry[0]["aqi"]["city"]["qlty"].ToString(); now.Hum = weather["hum"].ToString(); now.Vis= weather["vis"].ToString(); now.Winddir= weather["wind"]["dir"].ToString(); now.Windsc= weather["wind"]["sc"].ToString(); if (now_grid.Visibility == Visibility.Collapsed) now_grid.Visibility = Visibility.Visible; now_grid.DataContext = now; } private void DailyforecastData(JArray jsonarry) { List<Dailyforecast> dailyList = new List<Dailyforecast>(); JArray daily_forecast =JArray.Parse( jsonarry[0]["daily_forecast"].ToString()); for (int i = 0; i < daily_forecast.Count; i++) { dailyList.Add(new Dailyforecast() { Date = daily_forecast[i]["date"].ToString() , Astrosr=daily_forecast[1]["astro"]["sr"].ToString(), Astross= daily_forecast[1]["astro"]["ss"].ToString(), Hum = daily_forecast[i]["hum"].ToString(), Pop= daily_forecast[i]["pop"].ToString(), Tmpmax = daily_forecast[i]["tmp"]["max"].ToString(), Tmpmin = daily_forecast[i]["tmp"]["min"].ToString(), Txt_d = daily_forecast[i]["cond"]["txt_d"].ToString(), Txt_n = daily_forecast[i]["cond"]["txt_n"].ToString(), Winddir = daily_forecast[i]["wind"]["dir"].ToString(), Windsc = daily_forecast[i]["wind"]["sc"].ToString() }); } if (fv.Visibility == Visibility.Collapsed) fv.Visibility = Visibility.Visible; fv.ItemsSource = dailyList; } private void SuggestionsData(JArray jsonarry) { Suggestions suggestions = new Suggestions(); JToken suggestion = jsonarry[0]["suggestion"]; suggestions.Comfbrf = suggestion["comf"]["brf"].ToString(); suggestions.Comftxt = suggestion["comf"]["txt"].ToString(); suggestions.Drsgbrf = suggestion["drsg"]["brf"].ToString(); suggestions.Drsgtxt = suggestion["drsg"]["txt"].ToString(); suggestions.Flubrf = suggestion["flu"]["brf"].ToString(); suggestions.Flutxt = suggestion["flu"]["txt"].ToString(); suggestions.Sportbrf = suggestion["sport"]["brf"].ToString(); suggestions.Sporttxt = suggestion["sport"]["txt"].ToString(); if (sugestion_grid.Visibility == Visibility.Collapsed) sugestion_grid.Visibility = Visibility.Visible; sugestion_grid.DataContext = suggestions; }