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数据的序列化与反序列化。#t#
在基于ASP.NET AJAX客户端框架编程中,你可以基于Microsoft Ajax Library中提供的Sys.Serialization.JavaScriptSerializer对象提供的方法来实现JSON数据的序列化与反序列化。