将List对象列表转换成JSON格式的类

 

source:http://www.cnblogs.com/pcode/archive/2008/11/26/1341607.html

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。引用于[http://www.json.org/json-zh.html]

一般应用中,我习惯性地把结果集以更通用的IList<object>对象列表方式保存(可能会对性能有些影响)来保证类间交互时的通用性,降低函数功能对具体类的耦合。但AJAX调用时,还需要把对象列表转换成JSON数据交给前端显示。有麻烦。

     研究了一下JSON的对象定义和集合定义

 

     感觉利用反射来生成JSON还比较方便。代码如下:

 

Code

 OK,我们建立一个测试来验证一下它是否生效。

先建立一个对象定义person.cs

Code

然后建立测试类

我用了一种非常原始的方法生成了对象列表,其实可以从数据库查询,怕把事情搞得太复杂。呵呵。

Code

跑一下Nuint,我们想要的json串已经生成了。

Tag标签: JSON, 对象列表, List, 转换
posted on 2008-11-26 16:54 源姜 阅读(233) 评论(3)   编辑 收藏 网摘


   回复   引用   查看     
2008-11-26 17:21 | 上不了岸的鱼{ttzhang}       
沙发,嘿嘿...
   回复   引用   查看     
2008-11-26 18:29 | 圣盗       
可以参考 FrameWork3.5中的 System.Web.Script.Serialization命名空间,其中提供了JSON脚本序列化和反序列化的一些类
   回复   引用   查看     
2008-11-26 20:02 | 源姜       
--引用--------------------------------------------------
圣盗: 可以参考 FrameWork3.5中的 System.Web.Script.Serialization命名空间,其中提供了JSON脚本序列化和反序列化的一些类
--------------------------------------------------------
现在因为Nhibernate还没支持3.5,我还坚守在2.0的阵地上。
<script language=javascript> function GetQuote(id) { //www.cnblogs.com.ICommentService.GetCommentText(id,SetQuote); BlogServer.WebService.AjaxWS.GetComment(id,SetQuote); } function SetQuote(result) { document.getElementById('AjaxHolder_PostComment_tbComment').value+= ("--引用--------------------------------------------------/n"+result+"/n--------------------------------------------------------/n"); document.getElementById('AjaxHolder_PostComment_tbComment').focus(); } function Favorite(entryID,title,url,element) { document.getElementById(element.id).innerHTML = " 正在收藏..."; BlogServer.WebService.AjaxWS.AddToFavorites(entryID,title,url,OnFavoriteSuccess); document.getElementById(element.id).removeAttribute("href"); document.getElementById(element.id).removeAttribute("onclick"); } function OnFavoriteSuccess(result) { if(result == "请先登录") { window.location.href = "../../../../../login.aspx?ReturnUrl=" + window.location.href; } else { var returnstr = result.split(","); var id = "lnkFavorite"+returnstr[0]; document.getElementById(id).innerHTML = " " + returnstr[1] + ""; } } function DelComment(id,element) { if(confirm("确认要删除该评论吗?")) { document.getElementById(element.id).innerHTML = " 正在删除..."; BlogServer.WebService.AjaxWS.DelComment(id,del_comment_callback); } return false; } function del_comment_callback(response) { __doPostBack('AjaxHolder$PostComment$refreshList',''); } </script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值