Imports System.Runtime.CompilerServices Imports System.Web.Script.Serialization PublicModule JSONHelperModule JSONHelper <Extension()> _ PublicFunction ToJSONString()Function ToJSONString(ByVal obj AsObject) AsString Dim Serializer AsNew JavaScriptSerializer Return Serializer.Serialize(obj) End Function End Module
在VB2008中定义扩展方法,只需在方法前面声明 Extension 特性即可
测试一下
定义一个People实体类
PublicClass PeopleClass People Private m_ID AsInteger Private m_Name AsString PublicProperty ID()Property ID() AsInteger Get Return m_ID EndGet Set(ByVal value AsInteger) m_ID = value EndSet End Property PublicProperty Name()Property Name() AsString Get Return m_Name EndGet Set(ByVal value AsString) m_Name = value EndSet End Property End Class
然后再定义一个集合
Dim peoples AsNew List(Of People) peoples.Add(New People With {.ID =1, .Name ="黎摄文"}) peoples.Add(New People With {.ID =2, .Name ="算神"})
PS:上面使用了Linq的技巧
注意看一下智能感知,你会见到ToJSONString的扩展方法
测试的完全代码:
Module lishewenJSONTestModule lishewenJSONTest Sub Main()Sub Main() Dim peoples AsNew List(Of People) peoples.Add(New People With {.ID =1, .Name ="黎摄文"}) peoples.Add(New People With {.ID =2, .Name ="算神"}) Dim JSONstr = peoples.ToJSONString() Console.WriteLine(JSONstr) Console.Read() End Sub End Module
<script language="JavaScript" type="text/javascript">... //假设已经接收了服务器返回的JSON字符串 var d = [...{"ID":1,"Name":"黎摄文"},...{"ID":2,"Name":"算神"}]; for (i=0;i<2;i++)...{ alert(d[i].ID+':'+d[i].Name); } </script>