Welcome

首页 / 软件开发 / .NET编程技术 / 技巧/诀窍:用.NET 3.5创建ToJSON()扩展方法

技巧/诀窍:用.NET 3.5创建ToJSON()扩展方法2010-12-24木野狐译扩展方法让者可以向已有的 CLR 类型的公共契约中添加新的方法,而不 需要子类化或重新编译原有的类型。通过这种做法,可以使很多有用的应用场景 成为可能(包括 LINQ)。同时,扩展方法也可以用来非常方便地向代码中添加 "语法糖"。

过去几个月,我一直在准备一些很酷的扩展方法的清单,并计划在有空的时 候实现它们(不确定何时...但至少我还能从这些想法中获得乐趣)。在上述清 单中有两个扩展方法的应用场景,分别是用于为任意 .NET 对象自动生成JSON (JavaScript Object Notation)或 XML 序列化字符串的。

简单场景:ToJSON() 扩展方法

假设我有一个 Person 类定义如下(注意:我使用了 自动属性的新特性来实 现):

接下来,我就可以初始化一系列 Person 对象的集合,然后只需调用 ToJSON() 扩展方法,就能得到表示该集合内容的 JSON 字符串。如下所示:

这和 .NET 中内建的,Object 类的 ToString() 方法调用方式很相似 —— 只是生成的结果是表示集合内容的 JSON 格式的字符串而已。 然后我们就可以在 AJAX 场景的客户端使用它:

注意:点击上图中调试器的放大镜图标,可以打开"文本视图(Text Visualizer)",能更方便的查看 JSON 序列化字符串:

接下来,这个字符串格式在客户端可以用 JavaScript 来实例化为合适的 JavaScript 对象,用于表示我的集合内容(注: ASP.NET AJAX 有一个内建的 JavaScript 库支持这些特性)。