您的位置:知识库 » .NET技术

一步一步学Silverlight :数据与通信之JSON

作者: TerryLee  来源: 博客园  发布时间: 2008-10-09 11:51  阅读: 7563 次  推荐: 0   原文链接   [收藏]  

 

格式化后的数据如下:

TerryLee_Silverlight2_0076

现在实现在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。

TerryLee_Silverlight2_0074

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

TerryLee_Silverlight2_0065

结束语

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

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻