ASP.NET AJAX客戶端框架中的Microsoft AJax Library也提供了一個JSON序列化,從而方便在基於非ASP.NET平台上的ASP.Net AJax編程中的JSON數據的編碼與解碼,後來終於讓我找到了解決辦法。
這JavascriptSerializer對象暴露了兩個方法:serialize和deserialize。其中,serialize方法接受一個JavaScript對象形式的參數,此函數返回一個描述JSON數據的字符串,例如:
- Customer cust = JSSerializer.Deserialize(serializedText);
在此,變量json中存儲了一個字符串,這個串中相應於變量man中存儲的對象的JSON序列化。而deserialize方法執行與serialize方法相反的任務。它接受一個JSON字符串形式的參數,返回的是相應的JavaScript對象,例如:
- var man = {firstName: 'John', lastName: 'Mike'};
- var s1 = Sys.Serialization.JavaScriptSerializer;
- var JSon = s1.serialize(man);
最後需要注意的一點是,當你使用JSON分析器時,你需要小心日期數據的處理方式,這是因為JavaScript並不直接支持日期格式的數據。更多的有關日期格式的數據的JSON操作請參考官方網站提供的示例,在此不再贅述。
- 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);
現在,你應該對ASP.Net AJax框架中的JSON序列化及反序列化過程以及如何使用JSON序列化技術有了一個基本的認識。總體來看,無論是JSON序列化還是反序列化過程還是比較簡單的,特別是在客戶端分析JSON文本串要較之於XML數據的序列化分析要簡單。
ASP.NET AJAX編程中服務器與客戶端通信過程中的數據存儲形式的問題是一個基本的問題。在基於ASP.NET AJax服務器端框架編程中,你可以基於ASP.Net AJax核心程序集System.Web.Extensions中命名間System.Web.Script.Serialization中的JavaScriptSerializer類提供的方法來JSON數據的序列化與反序列化。
在基於ASP.Net AJAX客戶端框架編程中,你可以基於Microsoft AJax Library中提供的Sys.Serialization.JavaScriptSerializer對象提供的方法來實現JSON數據的序列化與反序列化。