JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
本篇内容将展示如何使用VB2008扩展方法去将一个对象序列化成JSON字符串
这次主要使用的是 System.Web.Script.Serialization 命名空间下的 JavaScriptSerializer 类,它位于 System.Web.Extensions 程序集中,之前的引用工作请先做好
JSONHelper 类
Imports System.Web.Script.Serialization
Public Module JSONHelper Module JSONHelper
<Extension()> _
Public Function ToJSONString()Function ToJSONString(ByVal obj As Object) As String
Dim Serializer As New JavaScriptSerializer
Return Serializer.Serialize(obj)
End Function
End Module
在VB2008中定义扩展方法,只需在方法前面声明 Extension 特性即可
测试一下
定义一个People实体类
Private m_ID As Integer
Private m_Name As String
Public Property ID()Property ID() As Integer
Get
Return m_ID
End Get
Set(ByVal value As Integer)
m_ID = value
End Set
End Property
Public Property Name()Property Name() As String
Get
Return m_Name
End Get
Set(ByVal value As String)
m_Name = value
End Set
End Property
End Class
然后再定义一个集合
peoples.Add( New People With {.ID = 1 , .Name = " 黎摄文 " })
peoples.Add( New People With {.ID = 2 , .Name = " 算神 " })
PS:上面使用了Linq的技巧
注意看一下智能感知,你会见到ToJSONString的扩展方法
测试的完全代码:
Sub Main()Sub Main()
Dim peoples As New 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
所获得的结果:[{"ID":1,"Name":"黎摄文"},{"ID":2,"Name":"算神"}]
在ASP.Net AJAX开发中产生的JSON字符串可用Response返回客户端,客户端利用AJAX的XMLHTTP的responseText属性接收,然后用JavaScript进行处理就简单了。例如:
//假设已经接收了服务器返回的JSON字符串
var d = [...{"ID":1,"Name":"黎摄文"},...{"ID":2,"Name":"算神"}];
for (i=0;i<2;i++)...{
alert(d[i].ID+':'+d[i].Name);
}
</ script >
本文到这里就结束了,更多关于JSON的内容请参考:http://www.json.org/