WEB开发网
开发学院图形图像Flash 学Silverlight 2系列(16):数据与通信之JSON 阅读

学Silverlight 2系列(16):数据与通信之JSON

 2008-10-03 11:35:47 来源:WEB开发网   
核心提示: 对这些数据格式化一下,看起来更明显,学Silverlight 2系列(16):数据与通信之JSON(2),这里推荐一个在线JSON数据格式化工具http://www.curiousconcept.com/jsonformatter/: 格式化后的数据如下: 现在实现在Silverligh

学Silverlight 2系列(16):数据与通信之JSON

对这些数据格式化一下,看起来更明显,这里推荐一个在线JSON数据格式化工具http://www.curiousconcept.com/jsonformatter/:

学Silverlight 2系列(16):数据与通信之JSON

格式化后的数据如下:

学Silverlight 2系列(16):数据与通信之JSON

现在实现在Silverlight中获取JSON数据,并进行反序列化,界面布局XAML就不再贴出来了,跟前面两篇的示例一样。在Silverlight 2中,内置了对于JSON的支持,通过命名空间System.Runtime.Serialization.Json提供,位于System.ServiceModel.Web.dll中。

我们使用WebRequest获取数据:

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
  Uri endpoint = new Uri("http://localhost:8081/BlogHandler.ashx");
  WebRequest request = WebRequest.Create(endpoint);
  request.Method = "POST";
  request.ContentType = "application/x-www-form-urlencoded";
  request.BeginGetResponse(new AsyncCallback(ResponseReady), request);
}
void ResponseReady(IAsyncResult asyncResult)
{
  WebRequest request = asyncResult.AsyncState as WebRequest;
  WebResponse response = request.EndGetResponse(asyncResult);
  using (Stream responseStream = response.GetResponseStream())
  {
    DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(Blog));
    Blog blog = jsonSerializer.ReadObject(responseStream) as Blog;
    Posts.ItemsSource = blog.Posts;
  }
}

DataContractJsonSerializer用于将对象序列化为JSON或者反序列化为对象实例,分别使用方法WriteObject和ReadObject。

学Silverlight 2系列(16):数据与通信之JSON

至此一个完整的在Silverlight 2对于JSON的支持示例就完成了。运行后的效果与前面的示例一样:

学Silverlight 2系列(16):数据与通信之JSON

结束语

本文简单介绍了在Silverlight 2中对于JSON的支持,DataContractJsonSerializer用于将对象序列化为JSON或者反序列化为对象实例,你可以下载本文示例代码。

上一页  1 2 

Tags:Silverlight 系列 数据

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接