将List对象列表转换成JSON格式的类.doc_第1页
将List对象列表转换成JSON格式的类.doc_第2页
将List对象列表转换成JSON格式的类.doc_第3页
将List对象列表转换成JSON格式的类.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

将List对象列表转换成JSON格式的类JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C+,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。引用于/json-zh.html一般应用中,我习惯性地把结果集以更通用的IList对象列表方式保存(可能会对性能有些影响)来保证类间交互时的通用性,降低函数功能对具体类的耦合。但AJAX调用时,还需要把对象列表转换成JSON数据交给前端显示。有麻烦。研究了一下JSON的对象定义和集合定义附件:您所在的用户组无法下载或查看附件感觉利用反射来生成JSON还比较方便。代码如下:Codecopytoclipboard/ObjectListToJSON/Copyright(c)2008pcode.Allrightsreserved./Author(s):/pcode,/email/此类用于将List转换为json数据格式/目前仅能处理一个object的基础数据类型而且对等对json有伤害影响特殊符号没有特殊处理/希望有兄弟继续完善usingSystem.Reflection;usingSystem.Collections.Generic;publicclassObjectListToJSON#region反射一个对象所有属性和属性值和将一个对象的反射结果封装成jsons格式/*对象的全部属性和属性值。用于填写json的内数据*生成后的格式类似*属性1:属性值*将这些属性名和属性值写入字符串列表返回*/privateListGetObjectProperty(objecto)Listpropertyslist=newList();PropertyInfopropertys=o.GetType().GetProperties();foreach(PropertyInfopinpropertys)propertyslist.Add(+p.Name.ToString()+:+p.GetValue(o,null)+);returnpropertyslist;/*将一个对象的所有属性和属性值按json的格式要求输入为一个封装后的结果。*返回值类似属性1:属性1值,属性2:属性2值,属性3:属性值*/privatestringOneObjectToJSON(objecto)stringresult=;Listls_propertys=newList();ls_propertys=GetObjectProperty(o);foreach(stringstr_propertyinls_propertys)if(result.Equals()result=result+str_property;elseresult=result+,+str_property+;returnresult+;#endregion/*把对象列表转换成json串*/publicstringtoJSON(Listobjlist)/覆写,给懒人一个不写classname的机会returntoJSON(objlist,string.Empty);publicstringtoJSON(Listobjlist,stringclassname)stringresult=;if(classname.Equals(string.Empty)/如果没有给定类的名称,那么自做聪明地安一个objecto=objlist0classname=o.GetType().ToString();result+=+classname+:;boolfirstline=true;/处理第一行前面不加,号foreach(objectooinobjlist)if(!firstline)result=result+,+OneObjectToJSON(oo);elseresult=result+OneObjectToJSON(oo)+;firstline=false;returnresult+;OK,我们建立一个测试来验证一下它是否生效。先建立一个对象定义person.csCodecopytoclipboardnamespaceModelpublicclassPersonpublicstringIDget;set;publicstringNameget;set;publicstringSexget;set;然后建立测试类我用了一种非常原始的方法生成了对象列表,其实可以从数据库查询,怕把事情搞得太复杂。呵呵。CodecopytoclipboardusingNUnit.Framework;usingSystem.Collections.Generic;namespaceJSonTestFixturepublicclassTestObjectToJSONTestpublicvoiddotest()Model.Personp1=newModel.Person();p1.ID=1;p1.Name=p1;p1.Sex=s1;Model.Personp2=newModel.Person();p2.ID=2;p2.Name=p2;p2.Sex=s2;Model.Personp3=newModel.Person();p3.ID=3;p3.Name=p3;p3.Sex=s3;Listlp=newList();lp.Add(p1);lp.Add(p2);lp.Add

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论