轻量级的数据交换格式——初识Json(下)
以下实例介绍了一个与jquery结合实现的ajax调用服务器端解析的json,并显示到浏览器。
step 1、先建立一个数据库表的实体模型(往往在分层开发中经常这样做):
UserInfo.cs:
1publicclassUserInfo
2{
3privateint_userid;
4privatestring_username;
5privatestring_password;
6
7///<summary>
8///构造函数
9///</summary>
10publicUserInfo()
11{
12}
13///<summary>
14///赋值函数
15///</summary>
16///<paramname="__userid">UserId</param>
17///<paramname="__username">UserName</param>
18///<paramname="__password">Password</param>
19publicUserInfo(int__userid,String__username,String__password)
20{
21_userid=__userid;
22_username=__username;
23_password=__password;
24}
25///<summary>
26///UserId
27///</summary>
28publicintUserId
29{
30get
31{
32return_userid;
33}
34set
35{
36_userid=value;
37}
38}
39
40///<summary>
41///UserName
42///</summary>
43publicStringUserName
44{
45get
46{
47return_username;
48}
49set
50{
51_username=value;
52}
53}
54
55///<summary>
56///Password
57///</summary>
58publicStringPassword
59{
60get
61{
62return_password;
63}
64set
65{
66_password=value;
67}
68}
69}
2{
3privateint_userid;
4privatestring_username;
5privatestring_password;
6
7///<summary>
8///构造函数
9///</summary>
10publicUserInfo()
11{
12}
13///<summary>
14///赋值函数
15///</summary>
16///<paramname="__userid">UserId</param>
17///<paramname="__username">UserName</param>
18///<paramname="__password">Password</param>
19publicUserInfo(int__userid,String__username,String__password)
20{
21_userid=__userid;
22_username=__username;
23_password=__password;
24}
25///<summary>
26///UserId
27///</summary>
28publicintUserId
29{
30get
31{
32return_userid;
33}
34set
35{
36_userid=value;
37}
38}
39
40///<summary>
41///UserName
42///</summary>
43publicStringUserName
44{
45get
46{
47return_username;
48}
49set
50{
51_username=value;
52}
53}
54
55///<summary>
56///Password
57///</summary>
58publicStringPassword
59{
60get
61{
62return_password;
63}
64set
65{
66_password=value;
67}
68}
69}
step 2、然后建立一个Handler.ashx,用于返回一个json格式的字符串
1<%@WebHandlerLanguage="C#"Class="Handler"%>
2
3usingSystem;
4usingSystem.Web;
5usingNewtonsoft.Json;//引用json.net
6
7publicclassHandler:IHttpHandler{
8
9publicvoidProcessRequest(HttpContextcontext){
10context.Response.ContentType="text/plain";
11UserInfouserInfo=newUserInfo(1,"liping","123");
12stringstrJson=JavaScriptConvert.SerializeObject(userInfo);//将对象序列化为json格式的字符串
13//UserInfouserByJson=(UserInfo)JavaScriptConvert.DeserializeObject(strJson,typeof(UserInfo));//通过这样将json格式字符串反序列化成对象
14context.Response.Write(strJson);
15}
16
17publicboolIsReusable{
18get{
19returnfalse;
20}
21}
22
23}
2
3usingSystem;
4usingSystem.Web;
5usingNewtonsoft.Json;//引用json.net
6
7publicclassHandler:IHttpHandler{
8
9publicvoidProcessRequest(HttpContextcontext){
10context.Response.ContentType="text/plain";
11UserInfouserInfo=newUserInfo(1,"liping","123");
12stringstrJson=JavaScriptConvert.SerializeObject(userInfo);//将对象序列化为json格式的字符串
13//UserInfouserByJson=(UserInfo)JavaScriptConvert.DeserializeObject(strJson,typeof(UserInfo));//通过这样将json格式字符串反序列化成对象
14context.Response.Write(strJson);
15}
16
17publicboolIsReusable{
18get{
19returnfalse;
20}
21}
22
23}
访问效果:
step 3、客服端使用ajax访问Handler.ashx:
javascript code:
1<scripttype="text/javascript"src="js/jquery-1.3.2.min.js"></script>
2<scripttype="text/javascript">
3$(document).ready(function(){
4$("#divclickajax").click(function(){
5$.getJSON("Handler.ashx",function(json){
6alert("JSONData:userid:"+json.UserId+",username:"+json.UserName+",password:"+json.Password);
7});
8});
9})
10</script>
2<scripttype="text/javascript">
3$(document).ready(function(){
4$("#divclickajax").click(function(){
5$.getJSON("Handler.ashx",function(json){
6alert("JSONData:userid:"+json.UserId+",username:"+json.UserName+",password:"+json.Password);
7});
8});
9})
10</script>
dom code:
1<divid="divclickajax">点击执行ajax请求</div>
最后效果
