现在的位置: 首页 > 综合 > 正文

新时尚Windows8开发(33):Json数据处理(B)

2012年10月24日 ⁄ 综合 ⁄ 共 2593字 ⁄ 字号 评论关闭

上一节我们讨论了如何手动方式来处理JSON对象数据,可能你也发现了,是有些痛苦,那么,用什么方法来读写JSON数据才算好玩?有的,如果你耍过WCF,或许已经想到了——JSON序列化和反序列化。

DataContractJsonSerializer类位于System.Runtime.Serialization.Json命名空间,我们只需要简单的调用两个方法就可以完成序列化和反序列化。

WriteObject:序列化,把对象写入JSON数据;

ReadObject:反序列化,从JSON数据中读入对象数据。

 

要完成今天的实例,我们先要定义一个类作为测试,这里我就举一个简单的,员工类,它有三个属性:姓名,联系电话,简介。定义如下。

  1. public class Employee  
  2. {  
  3.     /// <summary>  
  4.     /// 员工姓名  
  5.     /// </summary>  
  6.     public string Name { getset; }  
  7.     /// <summary>  
  8.     /// 联系手机  
  9.     /// </summary>  
  10.     public string Phone { getset; }  
  11.     /// <summary>  
  12.     /// 简介  
  13.     /// </summary>  
  14.     public string Description { getset; }  
  15. }  


对于UI,可以参考下面的XAML,我就不详细说,你会看得懂的。

  1. <Page  
  2.     x:Class="App1.MainPage"  
  3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.     xmlns:local="using:App1"  
  6.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
  7.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
  8.     mc:Ignorable="d">  
  9.   
  10.     <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">  
  11.         <Grid.ColumnDefinitions>  
  12.             <ColumnDefinition/>  
  13.             <ColumnDefinition/>  
  14.         </Grid.ColumnDefinitions>  
  15.         <StackPanel Orientation="Vertical" Grid.Column="0" Margin="17">  
  16.             <TextBlock Text="员工姓名:"/>  
  17.             <TextBox x:Name="txtName" Margin="0,2,0,14"/>  
  18.             <TextBlock Text="联系电话:"/>  
  19.             <TextBox x:Name="txtPhone" Margin="0,2,0,15"/>  
  20.             <TextBlock Text="员工简介:"/>  
  21.             <TextBox x:Name="txtDesc" Margin="0,2,0,26"/>  
  22.             <Button Content="保存数据" Click="onSave"/>  
  23.         </StackPanel>  
  24.         <StackPanel Orientation="Vertical" Grid.Column="1" Margin="15">  
  25.             <Button Content="加载数据" Click="onLoadData"/>  
  26.             <TextBlock x:Name="tbInfo" TextWrapping="Wrap" Margin="0,15,0,0"/>  
  27.         </StackPanel>  
  28.     </Grid>  
  29. </Page>  


切换到代码视图,参考下面代码:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.IO;  
  4. using System.Linq;  
  5. using Windows.Foundation;  
  6. using Windows.Foundation.Collections;  
  7. using Windows.UI.Xaml;  
  8. using Windows.UI.Xaml.Controls;  
  9. using Windows.UI.Xaml.Controls.Primitives;  
  10. using Windows.UI.Xaml.Data;  
  11. using Windows.UI.Xaml.Input;  
  12. using Windows.UI.Xaml.Media;  
  13. using Windows.UI.Xaml.Navigation;  
  14. // 引入以下命名空间  
  15. using System.Runtime.Serialization.Json;  
  16. using Windows.Storage;  
  17. using Windows.Storage.Pickers;  
  18. using Windows.Storage.Streams;  
  19. using Windows.UI.Popups;  
  20.   
  21. namespace App1  
  22. {  

抱歉!评论已关闭.