主要内容:

  • Linq to XML
  • Newtonsoft.Json.Linq来解析JSON
  • 博客园RSS(http://www.cnblogs.com/rss)的解析
  • UWP调用自己实现的Web API

1.Linq to XML

    Linq to XML不是一个新鲜的话题了,网上以及各种资料对这个介绍都比较多。今天就简单了解下,不做深入的研究。。。在代码中生成XML文档,使用Linq to XML会比Windows.Data.Xml.Dom命名空间下的类简单,使用起来也更加灵活。Linq to XML是对Linq表达式的扩展,我们也可以在处理XML时用上Linq语句。

先直接上一段代码:

         XDocument xdoc = new XDocument(new XDeclaration("1.0", "utf-8", null));
XElement root = new XElement("students",
new XElement("student", new XAttribute("id", ""), new XAttribute("name", "czh"), new XAttribute("age", )),
new XElement("student", new XAttribute("id", ""), new XAttribute("name", "dyq"), new XAttribute("age", )),
new XElement("student", new XAttribute("id", ""), new XAttribute("name", "wxk"), new XAttribute("age", )),
new XElement("student", new XAttribute("id", ""), new XAttribute("name", "cmf"), new XAttribute("age", )));
xdoc.Add(root);
textBlock.Text= xdoc.ToString();

首先我们创建了一个XDocument对象,代表整个XML文档,在创建这个对象时,我们传入了一个XDeclaration对象,这个对象声明了xml的基本信息(<?xml version="1.0" encoding="utf-8"?>)。XElement对象则对应着一个个的XML标签元素,XAttribute则对应这些元素里的属性。这段代码里面,root对应着<studens>标签,然后创建root时,我们传入了多个XElement对象,这些对象对应着<students>里面的<student>标签,然后把root添加到xdoc中,这样一个XML文档就创建完成了。对比上面的代码和下面生成的XML看一下咯。

<?xml version="1.0"?>
<students>
<student age="18" name="czh" id="201313138063"/>
<student age="19" name="dyq" id="201313138064"/>
<student age="22" name="wxk" id="201313138065"/>
<student age="20" name="cmf" id="201313138069"/>
</students>

接着,我们把上面的XML转化为对象列表,用列表控件进行显示:

    XDocument xdoc = XDocument.Parse(textBlock.Text);
XElement root= xdoc.Root;
var students = from student in root.Elements("student")
select new
{
SId=(string)student.Attribute("id"),
SName= (string)student.Attribute("name"),
SAge = (int)student.Attribute("age")
};
listView.ItemsSource = students;

在这里我们用到了Linq中的select语句,将root(对应于students)中的所有student元素转换成了匿名对象,这个匿名对象有SId、SName、SAge三个属性,然后将这些匿名对象组成的students(类型为IEnumerable<T>)绑定到ListView控件上显示:

2.Newtonsoft.Json.Linq来解析JSON

    Newtonsoft.Json.Linq是一个比较火的第三方JSON解析库,我们来简单使用下。。。在建好的项目上右击“引用”节点,选择“管理Nuget包”,然后在搜索栏里面输入“Newtonsoft”,选择第一个,点安装就是了。我们要解析JSON数据来源于中国和世界天气全能版(http://apistore.baidu.com/apiworks/servicedetail/478.html)

这个第三方库使用起来还是比较方便的,我们主要用到了JObject、JToken、JArray三个类,直接贴代码。

前台xaml:

 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="50"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<TextBox x:Name="tbCity" Margin="10,10,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="235"/>
<Button x:Name="btnSearch" Content="Search" HorizontalAlignment="Center" Margin="20,10,0,0" VerticalAlignment="Top" Click="btnSearch_Click"/>
</StackPanel>
<Grid Visibility="Collapsed" HorizontalAlignment="Center" Grid.Row="1" x:Name="now_grid">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="当前天气状况"></TextBlock>
<TextBlock Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="当前温度(C)"></TextBlock>
<TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="相对湿度(%)"></TextBlock>
<TextBlock Grid.Row="3" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="能见度(km)"></TextBlock>
<TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="空气质量指数"></TextBlock>
<TextBlock Grid.Row="5" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="PM2.5(ug/m³)"></TextBlock>
<TextBlock Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="空气质量类别"></TextBlock>
<TextBlock Grid.Row="7" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="风向"></TextBlock>
<TextBlock Grid.Row="8" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="风力"></TextBlock> <TextBlock Margin="12,0,0,0" Grid.Row="0" Grid.Column="1" Text="{Binding Txt}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="1" Grid.Column="1" Text="{Binding Tmp}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="2" Grid.Column="1" Text="{Binding Hum}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="3" Grid.Column="1" Text="{Binding Vis}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="4" Grid.Column="1" Text="{Binding Aqi}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="5" Grid.Column="1" Text="{Binding Pm25}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="6" Grid.Column="1" Text="{Binding Qlty}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="7" Grid.Column="1" Text="{Binding Winddir}"></TextBlock>
<TextBlock Margin="12,0,0,0" Grid.Row="8" Grid.Column="1" Text="{Binding Windsc}"></TextBlock>
</Grid> <FlipView Visibility="Collapsed" x:Name="fv" Grid.Row="2">
<FlipView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="5*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
</Grid.RowDefinitions>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Date}" HorizontalAlignment="Center"></TextBlock>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Margin="48,0,0,0" Text="日出时间:"></TextBlock>
<TextBlock Margin="12,0,0,0" Text="{Binding Astrosr}"></TextBlock>
<TextBlock Margin="24,0,0,0" Text="日出时间:"></TextBlock>
<TextBlock Margin="12,0,0,0" Text="{Binding Astross}"></TextBlock>
</StackPanel>
</StackPanel>
<Grid Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="相对湿度(%)"></TextBlock>
<TextBlock Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" Grid.Column="0" Text="降水概率"></TextBlock> <TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Hum}"></TextBlock>
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Pop}"></TextBlock>
<StackPanel Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2">
<TextBlock Margin="36,4,0,0" Text="最高温度(C):"></TextBlock>
<TextBlock Margin="12,4,0,0" Text="{Binding Tmpmax}"></TextBlock>
<TextBlock Margin="24,4,0,0" Text="最低温度(C):"></TextBlock>
<TextBlock Margin="12,4,0,0" Text="{Binding Tmpmin}"></TextBlock>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="3" Grid.ColumnSpan="2">
<TextBlock Margin="24,4,0,0" Text="白天天气状况:"></TextBlock>
<TextBlock Margin="12,4,0,0" Text="{Binding Txt_d}"></TextBlock>
<TextBlock Margin="24,4,0,0" Text="夜晚天气状况:"></TextBlock>
<TextBlock Margin="12,4,0,0" Text="{Binding Txt_n}"></TextBlock>
</StackPanel>
</Grid>
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<TextBlock Margin="48,0,0,0" Text="风向:"></TextBlock>
<TextBlock Margin="12,0,0,0" Text="{Binding Winddir}"></TextBlock>
<TextBlock Margin="24,0,0,0" Text="风力:"></TextBlock>
<TextBlock Margin="12,0,0,0" Text="{Binding Windsc}"></TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
<Grid x:Name="sugestion_grid" Visibility="Collapsed" Grid.Row="3" Margin="12">
<Grid.RowDefinitions>
<RowDefinition Height="2*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid Margin="8" Grid.Row="0" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="舒适度指数:"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Comfbrf}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Comftxt}" TextWrapping="Wrap"></TextBlock>
</Grid>
<Grid Margin="8" Grid.Row="0" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="穿衣指数:"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Drsgbrf}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Drsgtxt}" TextWrapping="Wrap"></TextBlock>
</Grid>
<Grid Margin="8" Grid.Row="1" Grid.Column="0">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="感冒指数:"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Flubrf}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Flutxt}" TextWrapping="Wrap"></TextBlock>
</Grid>
<Grid Margin="8" Grid.Row="1" Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBlock Text="运动指数:"></TextBlock>
<TextBlock Grid.Row="1" Text="{Binding Sportbrf}"></TextBlock>
<TextBlock Grid.Row="2" Text="{Binding Sporttxt}" TextWrapping="Wrap"></TextBlock>
</Grid>
</Grid>
</Grid>

后台代码:

  private async void btnSearch_Click(object sender, RoutedEventArgs e)
{
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("apikey", "你的apikey");
string url = "http://apis.baidu.com/heweather/pro/weather?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[]["now"];
now.Txt = weather["cond"]["txt"].ToString();
now.Tmp = weather["tmp"].ToString();
now.Aqi = jsonarry[]["aqi"]["city"]["aqi"].ToString();
now.Pm25 = jsonarry[]["aqi"]["city"]["pm25"].ToString();
now.Qlty = jsonarry[]["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[]["daily_forecast"].ToString());
for (int i = ; i < daily_forecast.Count; i++)
{
dailyList.Add(new Dailyforecast() {
Date = daily_forecast[i]["date"].ToString() ,
Astrosr=daily_forecast[]["astro"]["sr"].ToString(),
Astross= daily_forecast[]["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[]["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;
}

Weathernow.cs:

   /*
"txt": "晴" //天气状况描述
"tmp": "32", //温度
"hum": "20%", //相对湿度(%)
"vis": "10", //能见度(km)
"aqi": "30", //空气质量指数
"pm25": "7", //PM2.5 1小时平均值(ug/m³)
"qlty": "优", //空气质量类别
"winddir": "北风", //风向
"windsc": "3级", //风力
*/
public class Weathernow
{
public string Txt { get; set; }
public string Tmp { get; set; }
public string Hum { get; set; }
public string Vis { get; set; }
public string Aqi { get; set; }
public string Pm25 { get; set; }
public string Qlty { get; set; }
public string Winddir { get; set; }
public string Windsc { get; set; }
}

Suggestions.cs:

  /*
//舒适度指数
"comfbrf": "较不舒适", //简介
"comftxt": "白天天气多云,同时会感到有些热,不很舒适。" //详细描述 //穿衣指数
"drsgbrf": "炎热",
"drsgtxt": "天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。" //感冒指数
"flubrf": "少发",
"flutxt": "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。" //运动指数
"sportbrf": "较适宜",
"sporttxt": "天气较好,户外运动请注意防晒。推荐您进行室内运动。" //紫外线指数
"uvbrf": "中等",
"uvtxt": "属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。"
*/
public class Suggestions
{
public string Comfbrf { get; set; }
public string Comftxt { get; set; } public string Drsgbrf { get; set; }
public string Drsgtxt { get; set; } public string Flubrf { get; set; }
public string Flutxt { get; set; } public string Sportbrf { get; set; }
public string Sporttxt { get; set; }
}

Dailyforecast.cs:

  /*
"date": "2015-07-02", //预报日期
"astrosr": "04:50", //日出时间
"astross": "19:47" //日落时间
"txt_d": "晴", //白天天气状况描述
"txt_n": "晴" //夜间天气状况描述
"hum": "14", //相对湿度(%)
"pop": "0", //降水概率
"tmpmax": "34", //最高温度
"tmpmin": "18" //最低温度
"winddir": "东南风", //风向
"windsc": "3-4", //风力
*/
public class Dailyforecast
{
public string Date { get; set; }
public string Astrosr { get; set; }
public string Astross { get; set;}
public string Txt_d { get; set; }
public string Txt_n { get; set; }
public string Hum { get; set; }
public string Pop { get; set; }
public string Tmpmax { get; set; }
public string Tmpmin { get; set; }
public string Winddir { get; set; }
public string Windsc { get; set; } }

我们来看截取的这一段JSON数据:

JObject jsonobj = JObject.Parse(result);
      JArray jsonarry = JArray.Parse(jsonobj["HeWeather data service 3.0"].ToString());

JToken suggestion = jsonarry[0]["suggestion"];
      suggestions.Comfbrf = suggestion["comf"]["brf"].ToString();

借助上面几行代码就可以取到第三行的“较舒适”三个字了,像jsonarry[0]["suggestion"]["comf"]["brf"]这样来取相应的数据还是相当方便的,动手试试,不太难的。我这里之所以这么多代码,是为了要解析出很多的JSON数据。。。。来看运行结果:(废话:查询结果依次是当前天气,FilpView控件展示的未来十天天气,一些天气指数)

3.博客园RSS(http://www.cnblogs.com/rss)的解析

     在UWP里面,Windows.Web.Syndication命名空间对访问RSS源提供了比较好的支持,然而这次对博客园RSS的解析并没有采用这个命名空间下的类,而是直接解析XML文档来的。个人感觉在解析的时候还是遇到了一些坑的,里面貌似留了一些空格等东西,反正SelectNodes等的那个Xpath怎么写都不太对,最后直接用GetElementsByTagName了,此痛试过就知道。。。我们的HttpClient类采用的是Windows.Web.Http命名空间下的,XmlDocument则来自Windows.Data.Xml.Dom命名空间。还是像以前提到的,XML解析用好”快速监视“根据情况动态调整一下,不太难的。ok,直接贴代码,不做过多解释。

前台xaml:

 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions> <ListView x:Name="listview" ItemClick="listview_ItemClick" IsItemClickEnabled="True">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="10">
<TextBlock TextWrapping="Wrap" Text="{Binding Title}" FontSize="18"/>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding AuthorName}" FontSize="15"/>
<TextBlock Text="{Binding PublishedTime}" FontSize="15" Margin="30,0,10,0"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<WebView x:Name="wv" Grid.Column="1"/>
</Grid>

后台代码:(废话:把InitData方法放在MainPage的构造函数里面调用)

    private async void InitData()
{
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("user-agent", "Mozilla/5.0 (compatible;MSIE 10.0;Windows NT 6.2;WOW64;Trident/6.0)");
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://www.cnblogs.com/rss")); response.EnsureSuccessStatusCode(); string result = await response.Content.ReadAsStringAsync(); List<Article> articlelist = new List<Article>(); XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(result);
IXmlNode xn = xdoc.ChildNodes.Item(); // feed
XmlElement topxe = (XmlElement)xn;
XmlNodeList nodelist = topxe.GetElementsByTagName("entry"); foreach (IXmlNode node in nodelist)
{
XmlNodeList xeIdnodelist = ((XmlElement)node).GetElementsByTagName("id");
XmlNodeList xeTitlenodelist = ((XmlElement)node).GetElementsByTagName("title");
XmlNodeList xePublishednodelist = ((XmlElement)node).GetElementsByTagName("published");
XmlNodeList xecontentnodelist = ((XmlElement)node).GetElementsByTagName("content");
XmlNodeList xeAuthornodelist = ((XmlElement)node).GetElementsByTagName("author"); string id = xeIdnodelist.Item().InnerText;
string title = xeTitlenodelist.Item().InnerText.Split('-')[];
string published = xePublishednodelist.Item().InnerText;
string content = xecontentnodelist.Item().InnerText;
string authorname = xeAuthornodelist.Item().ChildNodes.Item().InnerText;
articlelist.Add(new Article() { Id = id, Title = title, AuthorName = authorname, PublishedTime = published, Content = content });
}
listview.ItemsSource = articlelist;
}
private void listview_ItemClick(object sender, ItemClickEventArgs e)
{
Article article = e.ClickedItem as Article;
wv.NavigateToString(article.Content);
}
   Article类:
public  class Article
{
public string Id { get; set; }
public string Title { get; set; }
public string AuthorName { get; set; }
public string PublishedTime { get; set; }
public string Content { get; set; }
}

运行结果:(废话:我们用ListView控件来显示文章的标题等信息,文章的内容由WebView控件来展示)

4.UWP调用自己实现的Web API

我们来利用ASP.NET Web API实现一个简单的API接口供UWP客户端来调用。由于本人的ASP.NET技术有限,所以这个API几乎是靠Visual Studio来自动生成,我们的数据采用Database First的方式来实现。

Firstly,新建一个ASP.NET Web应用程序,然后来到下图,为简单起见,选择“Empty”模板,然后选中“Web API”,点击“确定”,ok。

Secondly,右击项目的“Models”文件夹,依次,“添加”-->"新建项",在右边选择“数据”,然后选择“ADO.NET 实体数据模型”,名称处命名,点击“添加”,ok

然后我们来到下图,选择“来自数据库的Code First”,点击“下一步”

接着是下图

点击新建连接,出现下图,服务器名“.”表示本机,然后登陆到服务器,选择要连接的数据库,测试连接,连接成功,点击“确定“即可

aaarticlea/png;base64,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" alt="" />

然后是此图,我们这次只用到Books表,所有就只选中它了。点击“完成”之后,会在Models文件夹下面生成许多的文件,自行查看。。。

前面这些步骤说起来比较麻烦,也可能还没说清楚,由于我之前已经完成了编码,再记录的博客,也会漏掉一些内容,这些如果是自己操作熟了,会很简单的。数据还可以采用Code First等方式,,,,,不详述了。

Then,右击“Controllers文件夹”,点击添加控制器,如下图,点击“添加”

之后是这个,选择数据上下文类和模型类,然后再点击“添加”

aaarticlea/png;base64,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" alt="" />

点击添加,然后会在Controller文件夹下生成BooksController.cs类文件(图上的Books1Controller是因为我之前已完成编码,已经有了BooksController。。。。),我们打开BooksController类,会看到自动生成了很多的方法(模板的强大力量啊,用起来确实很方便,由于只是演示,就用模板了。。。),代码很多,这里就不贴了,里面的方法大多都对应一种HTTP请求的。

比如下面这个方法:

// GET: api/Books
        public IQueryable<Books> GetBooks()
        {
            return db.Books;
        }
我们生成并开始调试,然后浏览器会报错:HTTP Error 403.14 - Forbidden,这时候,我们只需要在那个地址后面加上api/Books就ok,根据不同的浏览器会返回json或xml数据,其他的方法则类似。至此API接口已全部完成。

最后就是客户端的调用了。分别采用了请求XML和JSON的方式,由于HTTP请求以及XML和JSON的解析,前面已经学习过,这里不再赘述,直接贴代码。

请求XML数据:

    private async void InitDataXml()
{
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new HttpMediaTypeWithQualityHeaderValue("application/xml"));
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://localhost:64339/api/books"));
response.EnsureSuccessStatusCode(); string result = await response.Content.ReadAsStringAsync(); List<Books> bookslist = new List<Books>(); XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(result);
IXmlNode xn = xdoc.ChildNodes.Item();
XmlElement topxe = (XmlElement)xn;
XmlNodeList nodelist = xn.ChildNodes;
foreach (IXmlNode node in nodelist)
{
XmlElement xe = (XmlElement)node; XmlNodeList xenodelist = xe.ChildNodes; bookslist.Add(new Books() { book_Name =xenodelist.Item().InnerText,
book_Author = xenodelist.Item().InnerText,
book_Isbn = xenodelist.Item().InnerText,
book_cate =xenodelist.Item().InnerText,
book_Press = xenodelist.Item().InnerText,
book_Rressdate = xenodelist.Item().InnerText,
book_Remain = Convert.ToInt32(xenodelist.Item().InnerText)
});
}
listView.ItemsSource = bookslist;
}

请求JSON数据:

    private async void InitDataJson()
{
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new HttpMediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = await httpClient.GetAsync(new Uri("http://localhost:64339/api/books"));
response.EnsureSuccessStatusCode();
string result = await response.Content.ReadAsStringAsync(); List<Books> bookslist = new List<Books>();
JsonArray arrays = JsonArray.Parse(result);
for (int i = ; i < arrays.Count; i++)
{
JsonObject obj = arrays.GetObjectAt((uint)i);
bookslist.Add(new Books() {
book_Name =obj.GetNamedString("book_Name"),
book_Author = obj.GetNamedString("book_Author"),
book_Isbn = obj.GetNamedString("book_Isbn"),
book_cate =obj.GetNamedString("book_cate"),
book_Press = obj.GetNamedString("book_Press"),
book_Rressdate = obj.GetNamedString("book_Rressdate"),
book_Remain = Convert.ToInt32(obj.GetNamedNumber("book_Remain"))
});
}
listView.ItemsSource = bookslist;
}

Book.cs:

   public class Books
{
public int book_Id { get; set; }
public string book_Name { get; set; }
public string book_Author { get; set; }
public string book_Isbn { get; set; }
public string book_cate { get; set; }
public string book_Press { get; set; }
public string book_Rressdate { get; set; }
public int book_Remain { get; set; }
}

运行结果:

借助于ASP.NET Web API,我们最终将SQL Server数据库中的数据通过UWP应用进行了展示。(我发现最后的这个图表示的意思有点不够,懒得换了,懒)

好了,这就是本次的全部内容了,貌似有点乱,要Demo的留邮箱。太晚了,睡觉了,晚安!

Windows 10开发基础——XML和JSON (二)的更多相关文章

  1. Windows 10开发基础——XML和JSON (一)

    主要内容: JSON的序列化与反序列化 XML的序列化与反序列化 1.JSON的序列化与反序列化     JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,它 ...

  2. Windows 10开发基础——文件、文件夹和库(一)

    原文:Windows 10开发基础--文件.文件夹和库(一) 主要内容: 1.枚举查询文件和文件夹 2.文本文件读写的三种方法——创建写入和读取文件 3.获得文件的属性 枚举查询文件和文件夹 先了解一 ...

  3. Windows 10开发基础——文件、文件夹和库(二)

    主要内容: 使用选取器打开和保存文件 关于文件.文件夹和库,如果深究其实还是有比较多的内容,我们这一次来学习一下选取器就收了.还有上篇博文中读写文本文件的三种方式可以细细体会一下. 文件选取器包含文件 ...

  4. Windows 10开发基础——网络编程

    主要内容: HttpClient类 Socket通信 WCF通信 HttpClient类      在UWP中可以用来进行网络通信的HttpClient类有两个,System.Net.Http.Htt ...

  5. Windows 10开发基础——启动默认应用的URI

    主要内容:通过指定的URI来启动默认的应用(设置,应用商店,地图,人脉) 方法一:直接在XAML中添加如下代码 <TextBlock x:Name="LocationDisabledM ...

  6. Windows 10开发基础——VS2015 Update1新建UWP项目,XAML设计器无法加载的解决

    这次,我们来解决一个问题...在使用Visual Studio 2015 Update 1的时候,新建一个UWP的项目,XAML设计器就会崩,具体异常信息如下图: 解决方法如下:下面圈出的那个路径就按 ...

  7. Windows 10开发基础——指针事件和操作事件(一)

    主要内容: 1.指针事件 2.操作事件 1.指针事件 指针事件由各种活动输入源引发,包括触摸.触摸板.笔和鼠标(它们替代传统的鼠标事件).指针事件基于单一输入点(手指.笔尖.鼠标光标),但不支持基于速 ...

  8. Windows 10 开发人员预览版中的新增功能(转自 IT之家)

    Windows 10 开发人员预览版中的新增功能 在Win10预览版中安装工具与SDK后,即可着手创建Windows通用应用或先浏览目前的环境与此前相比都发生了什么变化. 应用建模 文件资源管理器: ...

  9. windows下mongodb基础玩法系列二CURD附加一

    windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...

随机推荐

  1. 【codeforces 750F】New Year and Finding Roots

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  2. 【codeforces 750D】New Year and Fireworks

    time limit per test2.5 seconds memory limit per test256 megabytes inputstandard input outputstandard ...

  3. TensorFlow 学习(十三)—— tf.app.flags

    flags = tf.app.flags FLAGS = flags.FLAGS flags.DEFINE_integer('num_hidden_layers', 3, 'number of hid ...

  4. 基于Linux应用层的6LOWPAN物联网网关及实现方法

    本发明涉及一种基于Linux应用层的6LOWPAN物联网网关及实现方法,所述物联网网关包括开发平台以及无线射频模块,其实现方法是:所述6LOWPAN物联网网关的以太网网口收到访问6LOWPAN无线传感 ...

  5. Centos root权限的变化

    方法一:更改 /etc/sudoers 文件, 找到以下一行,把前面的凝视(#)去掉 ## Allows people in group wheel to run all commands %whee ...

  6. android开发之微信支付功能的实现

    移动开发中,支付类的App越来越多,对于开发者来说也是不可少的,不可不会的:下面就来说一说支付开发的流程 1.申请你的AppID 请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该 ...

  7. 未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.3.0, Culture=neutral, PublicKeyToken=31bf385

    网上说的解决方案有两个,第一:什么删除目录下的.java文件,   这个方法 对我没效果:第二:删除.csproj文件中.DotNetCompilerPlatform.CSharpCodeProvid ...

  8. poj 3090 Visible Lattice Points 法利系列||通过计

    因为图像关于对角线对称.所以我们仅仅看下三角区域. 将x轴看做分母,被圈的点看成分子 依次是{1/2},{1/3,1/2},{1/4,3/4},{1/5,2/5,3/5,4/5} 写成前缀和的形式就是 ...

  9. Js跨域小总结

    教程 以下的例子包含的文件均为为http://www.a.com/a.html.http://www.a.com/c.html 与http://www.b.com/b.html ,要做的都是从a.ht ...

  10. erlang工作前新手学习指引路线

    Erlang学习总结,新手指引 要具体的写erlang入门技术网上有非常多,我写的肯定没有那些大牛写的好,自己也实习了快一个月,也做一个总结,给后erlang初学兴趣者提供些拙见吧 第一步搭建学习环境 ...