浏览 5705 次
锁定老帖子 主题:轻量级的数据交换格式——初识Json(下)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (11) :: 隐藏帖 (2)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-29
最后修改:2009-12-15
下面就介绍在.net环境下解析json的一个api——json.net。我们使用Json.net来实现JSON数据的序列化和反序列化。下载地址:http://www.newtonsoft.com/downloads/json/json.zip 以下实例介绍了一个与jquery结合实现的ajax调用服务器端解析的json,并显示到浏览器。 step 1、先建立一个数据库表的实体模型(往往在分层开发中经常这样做): UserInfo.cs: 1 public class UserInfo 2 { 3 private int _userid; 4 private string _username; 5 private string _password; 6 7 /// <summary> 8 /// 构造函数 9 /// </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格式的字符串 1 <%@ WebHandler Language="C#" Class="Handler" %> 2 3 using System; 4 using System.Web; 5 using Newtonsoft.Json;//引用json.net 6 7 public class Handler : IHttpHandler { 8 9 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 } 访问效果: step 3、客服端使用ajax访问Handler.ashx: javascript code: 1 <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> 2 <script type="text/javascript"> 3 $(document).ready(function() { 4 $("#divclickajax").click(function() { 5 $.getJSON("Handler.ashx", function(json) { 6 alert("JSON Data: userid:" + json.UserId + ",username:" + json.UserName + ",password:" + json.Password); 7 }); 8 }); 9 }) 10 </script> dom code: 1 <div id="divclickajax">点击执行ajax请求</div> 最后效果 本文主要介绍了利用json.net对对象进行序列化(反序列化)的操作,从而为客服端提供合适的数据格式,最后通过ajax访问得到结果。关于json.net的更多信息可以参见官方网站:http://james.newtonking.com/projects/json-net.aspx 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-12-08
如果我想传多个userInfo对象给view 你是怎么序列化的了?
|
|
返回顶楼 | |
发表时间:2009-12-08
类似json-lib.jar 的实现
|
|
返回顶楼 | |
发表时间:2009-12-14
什么是多传一个userInfo对象?如果有多个相同的对象,可以做成一个list对象,然后再做序列化。
|
|
返回顶楼 | |
发表时间:2010-08-18
能不能说的详细些,
|
|
返回顶楼 | |
发表时间:2010-08-18
什么是多传一个userInfo对象?如果有多个相同的对象,可以做成一个list对象,然后再做序列化。
可否说的详细些,最好有demo |
|
返回顶楼 | |