【原】轻量级的数据交换格式——初识Json(下)

其实第一次见到服务器端使用json是在用asp.net mvc做项目的时候,在asp.net mvc 1.0中Controller可以直接返回给视图一个json对象。但当时大部分时候是返回一个ViewData,对json没有使用过。

下面就介绍在.net环境下解析json的一个api——json.net。我们使用Json.net来实现JSON数据的序列化和反序列化。下载地址:http://www.newtonsoft.com/downloads/json/json.zip

以下实例介绍了一个与jquery结合实现的ajax调用服务器端解析的json,并显示到浏览器。

step 1、先建立一个数据库表的实体模型(往往在分层开发中经常这样做):

UserInfo.cs:

public   class   UserInfo
{
        private   int   _userid;
        private   string   _username;
        private   string   _password;

        ///   < summary >
        ///   构造函数
        ///   < /summary >
10         public   UserInfo ( )
11         {
12         }
13         ///   < summary >
14         ///   赋值函数
15         ///   < /summary >
16         ///   < param name = " __userid " > UserId < /param >
17         ///   < param name = " __username " > UserName < /param >
18         ///   < param name = " __password " > Password < /param >
19         public   UserInfo ( int   __userid,   String   __username,   String   __password )
20         {
21                 _userid   =   __userid;
22                 _username   =   __username;
23                 _password   =   __password;
24         }
25         ///   < summary >
26         ///   UserId
27         ///   < /summary >
28         public   int   UserId
29         {
30                 get
31                 {
32                         return   _userid;
33                 }
34                 set
35                 {
36                         _userid   =   value ;
37                 }
38         }
39
40         ///   < summary >
41         ///   UserName
42         ///   < /summary >
43         public   String   UserName
44         {
45                 get
46                 {
47                         return   _username;
48                 }
49                 set
50                 {
51                         _username   =   value ;
52                 }
53         }
54
55         ///   < summary >
56         ///   Password
57         ///   < /summary >
58         public   String   Password
59         {
60                 get
61                 {
62                         return   _password;
63                 }
64                 set
65                 {
66                         _password   =   value ;
67                 }
68         }        
69 }

step 2、然后建立一个Handler.ashx,用于返回一个json格式的字符串

< %@   WebHandler   Language = " C# "   Class = " Handler "   % >

using   System;
using   System . Web;
using   Newtonsoft . Json; // 引用json.net

public   class   Handler   :   IHttpHandler   {
       
        public   void   ProcessRequest   ( HttpContext   context )   {
10                 context . Response . ContentType   =   " text/plain " ;
11                 UserInfo   userInfo   =   new   UserInfo ( 1 , " liping " , " 123 " ) ;
12                 string   strJson   =   JavaScriptConvert . SerializeObject ( userInfo ) ; // 将对象序列化为json格式的字符串
13                 // UserInfo   userByJson   =   (UserInfo)JavaScriptConvert.DeserializeObject(strJson,   typeof(UserInfo));//通过这样将json格式字符串反序列化成对象
14                 context . Response . Write ( strJson ) ;
15         }
16  
17         public   bool   IsReusable   {
18                 get   {
19                         return   false ;
20                 }
21         }
22
23 }

 

访问效果:image

step 3、客服端使用ajax访问Handler.ashx:

javascript code:

< script   type = " text/javascript "   src = " js/jquery-1.3.2.min.js " > < / script >
    < script   type = " text/javascript " >
            $ ( document ) . ready ( function ( )   {
                    $ ( " #divclickajax " ) . click ( function ( )   {
                            $ . getJSON ( " Handler.ashx " ,   function ( json )   {
                                    alert ( " JSON   Data:   userid: "   +   json . UserId   +   " ,username: "   +   json . UserName   +   " ,password: "   +   json . Password ) ;
                            } ) ;
                    } ) ;
            } )
10     < / script >
 

dom code:

1 <div   id = " divclickajax " >点击执行ajax请求</div>

 
最后效果

image

本文主要介绍了利用json.net对对象进行序列化(反序列化)的操作,从而为客服端提供合适的数据格式,最后通过ajax访问得到结果。关于json.net的更多信息可以参见官方网站:http://james.newtonking.com/projects/json-net.aspx

另:有哪位哥们能告诉我live writer上怎样可以让代码折叠起来?

转载于:https://www.cnblogs.com/liping19851014/archive/2009/08/24/1552967.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值