您的位置:首页 > Web前端 > JavaScript

《JSON序列化》二

2016-04-06 10:46 295 查看
   我们系统中的常用类型,都有对应的序列化器来支持。至于客户端和服务器端的远程调用,我们通过Asp.net AJAX扩展的web service来实现,先看看服务器端的代码:

  namespace StepByStep.Forms
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[System.Web.Script.Services.ScriptService]
public class AJAXService : System.Web.Services.WebService
{
public class WebServerInfo
{
public DateTime ServerTime
{
get;
set;
}

//如果想在序列化时忽略此属性,请打开下一行的注释
//[ScriptIgnore]
public string ServerInformation
{
get;
set;
}
}

[WebMethod]
public WebServerInfo GetServerInfo()
{
WebServerInfo result = new WebServerInfo();

result.ServerTime = DateTime.Now;
result.ServerInformation = GetServerInformation();

return result;
}

private static string GetServerInformation()
{
StringBuilder strB = new StringBuilder();

using (TextWriter writer = new StringWriter(strB))
{
writer.WriteLine("MachineName: {0}", Environment.MachineName);
writer.WriteLine("OS Version: {0}", Environment.OSVersion.VersionString);
writer.WriteLine("Is 64 bits: {0}", Environment.Is64BitOperatingSystem.ToString());
writer.WriteLine("Processor Count: {0}", Environment.ProcessorCount);
}

return strB.ToString();
}
}
}

 再看看客户端的代码:

  <asp:ScriptManager runat="server" ID="scriptManager" EnableScriptGlobalization="true">
<Services>
<asp:ServiceReference Path="~/Forms/AJAXService.asmx" />
</Services>
</asp:ScriptManager>
<SOA:SubmitButton runat="server" Text="Get Server Info" AsyncInvoke="onGetServerInfo" />
<script type="text/javascript">
function onGetServerInfo() {
StepByStep.Forms.AJAXService.GetServerInfo(onGetServerInfoSuccess, onFailed);
//这个名字空间需要和服务器端对应
return false;
}

function onGetServerInfoSuccess(serverInfo) {
$get("serverInfoText").innerText = serverInfo.ServerTime;
$get("serverInfoText").innerText += "\n" + serverInfo.ServerInformation;

SubmitButton.resetAllStates();
}

function onFailed(e) {
SubmitButton.resetAllStates();
$showError(e);
}

</script>
  在这个过程中,涉及到的对象序列化,都会遵循Asp.net AJAX的JSON序列化机制。关于JSON序列化,还有很多等待着自己去研究,继续钻研......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: