jquery的ajax调用webservice输出的对象

以下是这两天对 jquery调用webservice的一点点学习:
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Script.Serialization;
using System.Web.Script.Services;
namespace ChatRoom
{
/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService
{
[WebMethod]
[ScriptMethod(UseHttpGet = false)]//脚本提交方式用POST
public string GetUser()
{
Person p = new Person() { name = "ljc", age = "23" };
System.Web.Script.Serialization&#65279;.JavaScriptSerializer json = new JavaScriptSerializer();//序列化对象
return json.Serialize(p);
}
}
public class Peson
{
public string name { get; set; }
public string age { get; set; }
}
}
前台代码:
function getUser() {
//setTimeout("getUser()", 1000);
$.ajax({
url: "WebService.asmx/GetUser",
type: "POST",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: {},
success: function (result) {
var data = $.parseJSON(result.d); // 相当于反序列化得以对象
alert(data.name+data.age); },
});
}
$().ready(function () {
getUser();
&#65279; }:
最后总结下:
&#65279;服务器输出的不管是什么都可以直接用System.Web.Script.Serialization&#65279;.JavaScriptSerializer 序列化出去,在客户端再反序列下就可以了, 只是在JSON的处理上有点不同罢了,如回的是个集合,则 var data = $.parseJSON(result.d)中的data的数据处理是第一个对象是data[0].name,data[0].age;以此类推。&#65279;
&#65279;
Tags: 

延伸阅读

最新评论

发表评论