zoukankan      html  css  js  c++  java
  • 轻量级的数据交换格式——初识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; 
      
          ///  
          /// 构造函数 
         ///  
         public UserInfo() 
         { 
         } 
         ///  
         /// 赋值函数 
         ///  
         /// UserId 
         /// UserName 
         /// Password 
         public UserInfo(int __userid, String __username, String __password) 
         { 
             _userid = __userid; 
             _username = __username; 
             _password = __password; 
         } 
         ///  
         /// UserId 
         ///  
         public int UserId 
         { 
             get 
             { 
                 return _userid; 
             } 
             set 
             { 
                 _userid = value; 
             } 
         } 
     
         ///  
         /// UserName 
         ///  
         public String UserName 
         { 
             get 
             { 
                 return _username; 
             } 
             set 
             { 
                 _username = value; 
             } 
         } 
     
         ///  
         /// Password 
         ///  
         public String Password 
         { 
             get 
             { 
                 return _password; 
             } 
             set 
             { 
                 _password = value; 
             } 
         }        
     }

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

    using System; 
      using System.Web; 
      using Newtonsoft.Json;//引用json.net 
      
      public class Handler : IHttpHandler { 
          
          public void ProcessRequest (HttpContext context) { 
             context.Response.ContentType = "text/plain"; 
             UserInfo userInfo = new UserInfo(1,"liping","123"); 
             string strJson = JavaScriptConvert.SerializeObject(userInfo);//将对象序列化为json格式的字符串 
             //UserInfo userByJson = (UserInfo)JavaScriptConvert.DeserializeObject(strJson, typeof(UserInfo));//通过这样将json格式字符串反序列化成对象 
             context.Response.Write(strJson); 
         } 
      
         public bool IsReusable { 
             get { 
                 return false; 
             } 
         } 
     
     }

    访问效果:

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

     
        
    dom code:
    1 <div id="divclickajax">点击执行ajax请求</div>
    最后效果

       本文主要介绍了利用json.net对对象进行序列化(反序列化)的操作,从而为客服端提供合适的数据格式,最后通过ajax访问得到结果。关于 json.net的更多信息可以参见官方网站:http://james.newtonking.com/projects/json-net.aspx
  • 相关阅读:
    Large repunit factors (Project Euler 132)
    有向图 加最少的边 成为强连通分量的证明 poj 1236 hdu 2767
    ZJU 17th 校赛
    2015-2016ACM-ICPC NEER northern-subregional-contest C Concatenation
    BestCoder Round #93 ABC
    Codeforces Round #404 (Div. 2) DE
    Fibonacci数列的幂和 zoj 3774
    bitset在acm中的应用
    Codeforces Round #398 (Div. 2) BCD
    Hook length formula 学习笔记 UVALive 6625
  • 原文地址:https://www.cnblogs.com/leefreeman/p/2506520.html
Copyright © 2011-2022 走看看