结束语
本文简单介绍了在Silverlight 2中如何调用ASMX,你可以从这里下载示例代码。
(五)数据与通信之JSON
本文将简单介绍在Silverlight 2中对于JSON的支持。
简单示例
在本文中我们仍然采用前面两篇文章中用过的显示最新随笔这样一个示例(举一反三嘛:)),最终完成的效果如下图所示:
首先我们建立服务端,以便能够提供JSON格式的数据。在这里为了产生JSON格式的数据,我们借助于一个开源项目Json.NET。建立两个实体类型: public class Post { public int Id { get; set; } public string Title { get; set; } public string Author { get; set; } } public class Blog { public List Posts { get; set; } } 在Silverlight项目中我们也会使用到这两个实体类,新建一个HttpHandler,产生JSON格式数据,我们使用Json.NET中的JavaScriptConvert.SerializeObject方法即可序列化一个对象为JSON格式:
public class BlogHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = \; List posts = new List() { new Post{ Id=1, Title=\一步一步学Silverlight 2系列(13):数据与通信之WebRequest\, Author=\}, new Post{ Id=2, Title=\一步一步学Silverlight 2系列(12):数据与通信之WebClient\, Author=\}, new Post{ Id=3, Title=\一步一步学Silverlight 2系列(11):数据绑定\, Author=\}, new Post{ Id=4, Title=\一步一步学Silverlight 2系列(10):使用用户控件\, Author=\}, new Post{ Id=5, Title=\一步一步学Silverlight 2系列(9):使用控件模板\, Author=\}, new Post{ Id=6, Title=\一步一步学Silverlight 2系列(8):使用样式封装控件观感\, Author=\} }; Blog blog = new Blog(); blog.Posts = posts; context.Response.Write(JavaScriptConvert.SerializeObject(blog)); } public bool IsReusable { get { return false; } } } 现在测试一下HttpHandler,查看一下生成的数据格式:
对这些数据格式化一下,看起来更明显,这里推荐一个在线JSON数据格式化工具http://www.curiousconcept.com/jsonformatter/:
格式化后的数据如下: