注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

Json+jquery+asp.net 综合应用实例  

2012-09-28 11:23:46|  分类: asp.net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

最近在一个项目中看到Json的应用,这个应用最近还是比较突出的,正好有点时间,就学习了一下,作为技术储备。

一般的Json+jquery+asp.net 的应用在项目中都是ajax的一部分,包括数据源和数据处理页面。经过在网络上的学习,为了可以方便的生成Json,网上一般的方法是引用了 Newtonsoft.Json类来做此事。应用该类可以方便的生成Json数据串。

1.生成Json数据串

方法1,使用JavaScriptConvert.DeserializeObject对实体进行转换

下面这个是JavaScriptConvert.DeserializeObject的方法说明

//把Json字符串反序列化为对象
目标对象 = JavaScriptConvert.DeserializeObject(JSON字符串, typeof(目标对象));

[c-sharp] view plaincopy
  1. view plaincopy to clipboardprint?  
  2. // 获取用户数据     
  3. IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);     
  4.     
  5. // 使用方法对泛型实体进行转换     
  6. string jsonString = JavaScriptConvert.SerializeObject(userInfoList);     
  7.     
  8. // 输出串     
  9. Response.Clear();     
  10. Response.ContentEncoding = Encoding.UTF8;     
  11. Response.ContentType = "application/json";     
  12. Response.Write(jsonString);     
  13. Response.Flush();     
  14. Response.End();    
  15. // 获取用户数据  
  16. IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);  
  17.   
  18. // 使用方法对泛型实体进行转换  
  19. string jsonString = JavaScriptConvert.SerializeObject(userInfoList);  
  20.   
  21. // 输出串  
  22. Response.Clear();  
  23. Response.ContentEncoding = Encoding.UTF8;  
  24. Response.ContentType = "application/json";  
  25. Response.Write(jsonString);  
  26. Response.Flush();  
  27. Response.End();  
  28.    

方法二,没有实体的情况下,可以适应这种
[c-sharp] view plaincopy
  1. view plaincopy to clipboardprint?  
  2. // 获取用户数据     
  3. IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);     
  4.     
  5. // 构成json数据串     
  6. StringWriter sw = new StringWriter();     
  7. JsonWriter writer = new JsonWriter(sw);     
  8. foreach (MUsersInfo item in userInfoList)     
  9. {     
  10.    writer.WriteStartArray();     
  11.    writer.WriteStartObject();     
  12.    writer.WritePropertyName("UserId"); // 属性名称     
  13.    writer.WriteValue(item.Ts_Users_ID); // 属性值     
  14.    writer.WritePropertyName("RealName");     
  15.    writer.WriteValue(item.Ts_User_RealName);     
  16.    writer.WriteEndObject();     
  17.    writer.WriteEndArray();     
  18. }     
  19.     
  20. writer.Flush();     
  21.     
  22. // 生成串     
  23. string jsonString = sw.GetStringBuilder().ToString();     
  24.     
  25. // 输出     
  26. Response.Clear();     
  27. Response.ContentEncoding = Encoding.UTF8;     
  28. Response.ContentType = "application/json";     
  29. Response.Write(jsonString);     
  30. Response.Flush();     
  31. Response.End();    
  32. // 获取用户数据  
  33. IList<MUsersInfo> userInfoList = bllUser.GetSearch(userName, unitID, 0, 0);  
  34.   
  35. // 构成json数据串  
  36. StringWriter sw = new StringWriter();  
  37. JsonWriter writer = new JsonWriter(sw);  
  38. foreach (MUsersInfo item in userInfoList)  
  39. {  
  40.    writer.WriteStartArray();  
  41.    writer.WriteStartObject();  
  42.    writer.WritePropertyName("UserId"); // 属性名称  
  43.    writer.WriteValue(item.Ts_Users_ID); // 属性值  
  44.    writer.WritePropertyName("RealName");  
  45.    writer.WriteValue(item.Ts_User_RealName);  
  46.    writer.WriteEndObject();  
  47.    writer.WriteEndArray();  
  48. }  
  49.   
  50. writer.Flush();  
  51.   
  52. // 生成串  
  53. string jsonString = sw.GetStringBuilder().ToString();  
  54.   
  55. // 输出  
  56. Response.Clear();  
  57. Response.ContentEncoding = Encoding.UTF8;  
  58. Response.ContentType = "application/json";  
  59. Response.Write(jsonString);  
  60. Response.Flush();  
  61. Response.End();  
  

两种方式各有各的好处,第一种方便,第二种灵活。

2.jquery读取json串

[c-sharp] view plaincopy
  1. view plaincopy to clipboardprint?  
  2. $(document).ready(function() {     
  3.     $("#Button1").click(function() {     
  4.     $.getJSON("webService/UserList.aspx", function(json) {     
  5.             alert("total " + json.length.toString() + " records");     
  6.             for (var i = 0; i < json.length; i++) {     
  7.                 $("<li />").appendTo("div").html(json[i].Ts_User_RealName);     
  8.             }      
  9.         });     
  10.     });     
  11. });    
  12.         $(document).ready(function() {  
  13.             $("#Button1").click(function() {  
  14.             $.getJSON("webService/UserList.aspx", function(json) {  
  15.                     alert("total " + json.length.toString() + " records");  
  16.                     for (var i = 0; i < json.length; i++) {  
  17.                         $("<li />").appendTo("div").html(json[i].Ts_User_RealName);  
  18.                     }   
  19.                 });  
  20.             });  
  21.         });  
  

在button1按下时触发获取数据,将json串中的数据,循环做为li标记添加到div中

  评论这张
 
阅读(511)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017