本文介绍ASP.NET AJAX的JSON序列化和反序列化,JSON 是一个正在崭露头角的行业标准序列化格式。它还是被 ASP.NET AJAX 使用的本机格式。
JSON序列化和反序列化
- POST/Ajax/ZipCodeService.asmx/GetCityAndStateHTTP/1.1
- Accept:*/*
- Accept-Language:en-us
- Referer:http://localhost:1997/Ajax/ZipCodePage.aspx
- UA-CPU:x86
- Accept-Encoding:gzip,deflate
- User-Agent:Mozilla/4.0(compatible;MSIE7.0;...)
- Host:localhost:1997
- Content-Length:15
- Connection:Keep-Alive
- Cache-Control:no-cache
- {"zip":"98052"}
- HTTP/1.1200OK
- Server:ASP.NETDevelopmentServer/8.0.0.0
- Date:Fri,29Dec200621:06:17GMT
- X-AspNet-Version:2.0.50727
- Cache-Control:private,max-age=0
- Content-Type:application/json;charset=utf-8
- Content-Length:16
- Connection:Close
- {"REDMOND","WA"}
JSON 是一个正在锋芒毕露的行业标准序列化格局。它仍是被 ASP.NET AJAX 运用的本机格局。Microsoft AJAX Library 的 Sys.Serialization.JavaScriptSerializer 类支撑在客户端进行 JSON序列化和反序列化。System.Web.Script.Serialization.JavaScriptSerializer 类支撑在服务器上进行 JSON序列化和反序列化。
并非一切类型均与 JSON 兼容。例如,JSON 不能处理具有循环引证的目标。当您需求回来不能与 JSON 兼容的杂乱数据类型时,其实您能够运用 ASP.NET AJAX 的 ScriptMethod 特点将回来类型序列化为 XML。这个技能对回来 XML 数据的办法也很有用,如下所示:
- [ScriptMethod(ResponseFormatResponseFormat=ResponseFormat.Xml)]
- publicXmlDocumentGetData()
- {
- ...
- }
此外,您还能够构建和注册自定义 JSON 转换器,它答应将一般不能与 JSON 兼容的类型序列化和反序列化。ASP.NET AJAX January Futures CTP 包括三个这样的转换器:一个针对 DataSet,一个针对 DataTable,还有一个针对 DataRow。
【修改引荐】
- 浅析ASP.NET Web 安全性
- ASP.NET的Session State
- 浅析IsPostBack特点ASP.NET
- ASP.NET构架与安全机制
- 概述ASP.NET水晶报表