亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net JSON 序列化技術分析

2024-07-10 13:26:24
字體:
來源:轉載
供稿:網友
在ASP.NET 3.5開始,.NET平臺下共支持兩種序列化方式:

復制代碼 代碼如下:


1.DataContractSerializer
2.JavascriptSerializer


前者主要是根據數據契約(DataContract)進行序列化,通過如下定義的數據契約:
代碼

復制代碼 代碼如下:


<DataMember()> _
Public Class Model
<DataMember()> Public Property PropertyA As String
<DataMember()> Public Property PropertyB As String
<IgnoreDataMember()> Public Property PropertyC As String
End Class


其中會根據<DataMember>和<IgnoreDataMember>進行屬性是否序列化的判斷。
根據數據契約序列化是有缺點的,它的缺點在于在數據類定義之初就需要對屬性是否進行序列化進行判定,對于在各處使用的數據模型(Data Model)可能會導致需要全部指定為DataMember,而將無用的屬性還有帶有默認值(例如Nothing或Null)的屬性也同樣進行序列化;二是,序列化不能使用屬性別名,在業務中定義的名稱可能過長,而如果不能指定屬性別名就會浪費帶寬,導致服務器端與客戶端之間的通信變慢。
PageMethod是使用JSON序列化技術的最佳使用場景,在頁面實現異步調用(AJAX調用),而不用把所有邏輯都寫在服務中,UI方面的業務邏輯判斷處理可以寫在PageMethod中。在畫面插入如下ScriptManager聲明并指定EnablePageMethods為True即可將PageMethod打開。
<asp:ScriptManager runat="server" EnablePageMethods="true">
</asp:ScriptManager>
很多人看到的實例都是通過MS AJAX進行PageMethod的調用,但因為近兩年微軟在做ASP.NET與jQuery方面的合作實驗,我們其實也可以通過jQuery進行PageMethod的調用。但jQuery的調用方法無法使用GET,只要POST空JSON對象即可實現類GET調用。腳本如下:

復制代碼 代碼如下:


$.ajax({
type: "POST",
url: "Default.aspx/GetJSON",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg);
}
});


PageMethod生命方法如下:

復制代碼 代碼如下:


<WebMethod()> _
Public Shared Function GetJSON() As String
Dim list As New List(Of Model)
For index As Integer = 0 To 1000
Dim m_JSON As New Model With {.PropertyA = "Hello", .PropertyB = "World"}
list.Add(m_JSON)
Next
Dim str As String = JSONHelper.Serialize(list)
Return str
End Function
[code]
其中Model類定義如下:
[code]
<DataContract()> _
Public Class Model
<DataMember(EmitdefaultValue:=False, IsRequired:=False, Name:="A")> Public Property PropertyA As String
<DataMember(EmitdefaultValue:=False, IsRequired:=False, Name:="B")> Public Property PropertyB As String
<DataMember(EmitdefaultValue:=False, IsRequired:=False, Name:="C")> Public Property PropertyC As String
End Class


序列化的Model實例結果為:
{"A":"Hello","B":"World"}
這里再給大家提供一下網上比較流行的JSON轉換類,使用的是JavascriptSerializer,代碼如下:

復制代碼 代碼如下:


Public Class JSONHelper
Public Shared Function Serialize(Of T)(ByVal obj As T) As String
Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType())
Dim ms As New MemoryStream()
serializer.WriteObject(ms, obj)
Dim retVal As String = Encoding.Default.GetString(ms.ToArray())
Return retVal
End Function
Public Shared Function Deserialize(Of T)(ByVal json As String) As T
Dim obj As T = Activator.CreateInstance(Of T)()
Dim ms As New MemoryStream(Encoding.Unicode.GetBytes(json))
Dim serializer As New System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType())
obj = CType(serializer.ReadObject(ms), T)
ms.Close()
Return obj
End Function
End Class

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美大片免费观看| 精品成人国产在线观看男人呻吟| 亚洲精品免费一区二区三区| 日本久久久久久| 91精品久久久久久久久久久| 日韩中文第一页| 丝袜美腿精品国产二区| 中文字幕亚洲无线码a| 韩国精品美女www爽爽爽视频| 国产精品青青在线观看爽香蕉| 久久久久久12| 最近2019年好看中文字幕视频| 国产精品一区二区久久| 在线观看成人黄色| 欧美裸体男粗大视频在线观看| 亚洲人成五月天| 91地址最新发布| 亚洲精品小视频| 久久99久久久久久久噜噜| 97在线视频一区| 国产91精品不卡视频| 欧美性猛交丰臀xxxxx网站| 欧美激情视频在线免费观看 欧美视频免费一| 77777少妇光屁股久久一区| 性欧美暴力猛交69hd| 精品久久中文字幕| 亚洲色图欧美制服丝袜另类第一页| 91超碰caoporn97人人| 狠狠操狠狠色综合网| 成人免费网站在线| 国产精品久久久久久久av大片| 欧美一级大片视频| 日韩大陆欧美高清视频区| 中文字幕亚洲综合久久筱田步美| 成人在线免费观看视视频| 最新中文字幕亚洲| 亚洲第一级黄色片| 日韩精品视频在线播放| 亚洲影影院av| 一区二区欧美日韩视频| 国产精品草莓在线免费观看| 欧美性xxxx极品hd欧美风情| 国产99视频精品免视看7| 精品女厕一区二区三区| 91在线观看免费高清完整版在线观看| 成人做爰www免费看视频网站| 亚洲一区二区三区香蕉| 欧美视频免费在线观看| 亚洲国产美女精品久久久久∴| 日韩在线观看你懂的| 国产精品久久久久久久一区探花| 福利微拍一区二区| 在线观看欧美www| 久久久亚洲精选| 久久中文字幕在线视频| 欧美国产日韩一区| 欧美日韩国产一区二区三区| 日韩高清免费观看| 少妇久久久久久| 日韩在线一区二区三区免费视频| 亚洲男人天堂2019| 国产成人亚洲综合91| 成人网页在线免费观看| 国产欧美日韩综合精品| 久久久91精品国产| 午夜精品久久久久久99热软件| 欧美激情亚洲激情| 日韩中文字幕免费视频| 久久国产精品影视| 成人黄色免费看| 亚洲免费人成在线视频观看| 日韩av在线一区二区| 国产精品视频网| 成人免费激情视频| 国产精品久久久久久久久久三级| 日韩av在线免播放器| 青青草99啪国产免费| 亚洲男人的天堂在线| 日韩精品久久久久| 国产精品成人v| 久久精品久久久久电影| 日韩av三级在线观看| 免费av一区二区| 国产一区二区免费| 97高清免费视频| 国产精品v日韩精品| 国产一区二区日韩| 日韩av电影在线播放| 91久久国产精品91久久性色| 国产经典一区二区| 亚洲精品视频久久| 日韩在线观看免费av| 亚洲视频日韩精品| 韩国视频理论视频久久| 成人有码在线播放| 亚洲人成在线免费观看| 久久999免费视频| 中文字幕日韩精品有码视频| 免费99精品国产自在在线| 日韩精品在线免费观看视频| 精品久久久久久中文字幕| 国内精品久久久久伊人av| 九九精品在线视频| 欧美性感美女h网站在线观看免费| 日韩电影大片中文字幕| 亚洲精品日韩久久久| 日本欧美黄网站| 亚洲国产另类 国产精品国产免费| 久久国产精品久久久| 久久6免费高清热精品| 国产精品久久久久av| 成人精品aaaa网站| 亚洲一级黄色av| 久久久久国产精品www| 国产日韩在线观看av| 国产在线观看一区二区三区| 久热精品视频在线观看一区| 久久69精品久久久久久久电影好| 91sao在线观看国产| 成人免费在线视频网站| 国产精品欧美一区二区| 91精品国产综合久久久久久久久| 中文字幕日韩欧美在线| 久久精品久久精品亚洲人| 一区二区中文字幕| 91精品国产九九九久久久亚洲| 国色天香2019中文字幕在线观看| 一本一本久久a久久精品牛牛影视| 亚洲男人天堂古典| 国产精品久久久91| 超碰精品一区二区三区乱码| 久久精品欧美视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 一区二区三区动漫| 国产999精品久久久| 久久在线观看视频| 久久国产精品久久久| 精品久久久久久久大神国产| 中文字幕欧美日韩精品| 国内精品在线一区| 97精品伊人久久久大香线蕉| 亚洲午夜国产成人av电影男同| 精品偷拍各种wc美女嘘嘘| 91精品国产乱码久久久久久久久| 亚洲自拍高清视频网站| 成人a在线观看| 亚洲日本中文字幕免费在线不卡| 麻豆一区二区在线观看| 国产成人精品a视频一区www| 色狠狠av一区二区三区香蕉蜜桃| 久99久在线视频| 久久人人爽国产| 中日韩美女免费视频网站在线观看| 欧美成人一二三| 69久久夜色精品国产7777| 狠狠做深爱婷婷久久综合一区| 久久99精品久久久久久琪琪| 成人久久精品视频| 久久99国产精品自在自在app| 92裸体在线视频网站| 91极品视频在线| 日韩av色综合| 国产专区欧美专区| 久久综合电影一区|