闡述JSON序列化的解決方法進(jìn)行相關(guān)介紹
ASP.NET AJAX客戶端框架中的Microsoft Ajax Library也提供了一個(gè)JSON序列化,從而方便在基于非ASP.NET平臺(tái)上的ASP.NET AJAX編程中的JSON數(shù)據(jù)的編碼與解碼,后來(lái)終于讓我找到了解決辦法。
這JavaScriptSerializer對(duì)象暴露了兩個(gè)方法:serialize和deserialize。其中,serialize方法接受一個(gè)JavaScript對(duì)象形式的參數(shù),此函數(shù)返回一個(gè)描述JSON數(shù)據(jù)的字符串,例如:
- Customer cust = jsSerializer.Deserialize(serializedText);
在此,變量json中存儲(chǔ)了一個(gè)字符串,這個(gè)串中相應(yīng)于變量man中存儲(chǔ)的對(duì)象的JSON序列化。而deserialize方法執(zhí)行與serialize方法相反的任務(wù)。它接受一個(gè)JSON字符串形式的參數(shù),返回的是相應(yīng)的JavaScript對(duì)象,例如:
- var man = {firstName: 'John', lastName: 'Mike'};
- var s1 = Sys.Serialization.JavaScriptSerializer;
- var json = s1.serialize(man);
***需要注意的一點(diǎn)是,當(dāng)你使用JSON分析器時(shí),你需要小心日期數(shù)據(jù)的處理方式,這是因?yàn)镴avaScript并不直接支持日期格式的數(shù)據(jù)。更多的有關(guān)日期格式的數(shù)據(jù)的JSON操作請(qǐng)參考官方網(wǎng)站提供的示例,在此不再贅述。
- JavaScriptSerializer jsSerializer = new
- JavaScriptSerializer(new SimpleTypeResolver());
- Customer cust = new Customer();
- cust.FirstName = "Joe";
- cust.EmailAddress = "jknown@domain.com";
- cust.PhoneNumbers = new Phone();
- cust.PhoneNumbers.HomePhone = "888-888-8888";
- string serializedText = jsSerializer.Serialize(cust);
現(xiàn)在,你應(yīng)該對(duì)ASP.NET AJAX框架中的JSON序列化及反序列化過(guò)程以及如何使用JSON序列化技術(shù)有了一個(gè)基本的認(rèn)識(shí)??傮w來(lái)看,無(wú)論是JSON序列化還是反序列化過(guò)程還是比較簡(jiǎn)單的,特別是在客戶端分析JSON文本串要較之于XML數(shù)據(jù)的序列化分析要簡(jiǎn)單。
ASP.NET AJAX編程中服務(wù)器與客戶端通信過(guò)程中的數(shù)據(jù)存儲(chǔ)形式的問(wèn)題是一個(gè)基本的問(wèn)題。在基于ASP.NET AJAX服務(wù)器端框架編程中,你可以基于ASP.NET AJAX核心程序集System.Web.Extensions中命名間System.Web.Script.Serialization中的JavaScriptSerializer類提供的方法來(lái)JSON數(shù)據(jù)的序列化與反序列化。#t#
在基于ASP.NET AJAX客戶端框架編程中,你可以基于Microsoft Ajax Library中提供的Sys.Serialization.JavaScriptSerializer對(duì)象提供的方法來(lái)實(shí)現(xiàn)JSON數(shù)據(jù)的序列化與反序列化。