.NET调用百度天气api经验

首先申请api 获取AK码

然后获取JSON数据

然后解析JSON数据

最后呈现出读取的数据

个人修改 只呈现天气预报部分

注:其中使用的类库直接使用转载博文中类库

只是修改了其中的program.CS文件中的部分

修改部分如下

using System;using System.Collections.Generic;using System.Text;using System.Net;using Newtonsoft.Json;using System.Xml.Serialization;using System.IO;using System.Xml;namespace BDCode{class Program{static void Main(string[] args){using (var client = new WebClient()){//获取所在城市client.Encoding = Encoding.UTF8;var url = "?ip=27.37.26.219";var json = client.DownloadString(url);var ip = JsonConvert.DeserializeObject<TIPData>(json);ip.data.city = "南京";//获取天气url = "?location=" + ip.data.city + "&output=json&ak=hXWAgbsCC9UTkBO5V5Qg1WZ9";json = client.DownloadString(url);var tq = JsonConvert.DeserializeObject<BaiduTQ>(json);Console.WriteLine("{0} {1}", tq.results[0].currentCity, tq.results[0].weather_data[0].date);Console.WriteLine("error:{0} status:{1} date{2}",tq.error,tq.status,tq.date);Console.WriteLine("currentCity:{0} pm2.5:{1}",tq.results[0].currentCity,tq.results[0].pm25);for (int i = 0; i <tq.results[0].weather_data.Count; i++){Console.WriteLine("");Console.WriteLine(" date:{0} \n dayPictureUrl:{1} \n nightPictureUrl:{2} \n waeather:{3} \n wind:{4} \n temperature:{5} \n ", tq.results[0].weather_data[i].date, tq.results[0].weather_data[i].dayPictureUrl, tq.results[0].weather_data[i].nightPictureUrl, tq.results[0].weather_data[i].weather, tq.results[0].weather_data[i].wind, tq.results[0].weather_data[i].temperature);}//Console.WriteLine("");/*//获取百度新闻数据url = "?cmd=7&loc=0&name=%B1%B1%BE%A9&tn=rss";client.Encoding = Encoding.GetEncoding("gb2312");var xml = client.DownloadString(url);var rss = Deserialize<Rss>(xml);foreach (var news in rss.channel.item){Console.WriteLine("标题:{0}", news.title);Console.WriteLine("链接:{0}", news.link);Console.WriteLine("来源:{0}", news.source);Console.WriteLine("描述:{0}", news.description);Console.WriteLine();}* */Console.ReadLine();}}/// <summary>/// 反序列化/// </summary>public static T Deserialize<T>(string xmlContent){XmlSerializer xs = new XmlSerializer(typeof(T));using (StringReader strReader = new StringReader(xmlContent)){XmlReader xmlReader = XmlReader.Create(strReader);return (T)xs.Deserialize(xmlReader);}}}}1 WebClient类的DownloadString方法 使用

即把网页的数据返回以String形式返回

var json=WebClient.DownloadString(url)//返回JSON形式的数据

2 JSON数据的解析

本文学习转载的博文 使用的是

JsonConvert.DeserializeObject<BaiduTQ>(json);方法

要使用这个必须调用Newton.json 类库 以及Newton.json.dll文件

3 JSON格式解析的其他学习

3.1

3.2

3.3

4 转载的博客

4.1

4.2 备份网址

5 转载工程示例的源代码

修改后的示例结果

,人生没有彩排,每天都是现场直播。

.NET调用百度天气api经验

相关文章:

你感兴趣的文章:

标签云: