ASP.NET自带对象JSON字符串与实体类的转换
关于JSON的更多介绍,请各位自行google了解!如果要我写的话,我也是去Google后copy!嘿嘿,一直以来很想学习json,大量的找资料和写demo,总算有点了解!切入正题!
还是先封装一个类吧!这个类网上都可以找到的!有个这个类,一切都将变得简单了,哈哈。
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Web; usingSystem.Runtime.Serialization.Json; usingSystem.ServiceModel.Web;///记得引用这个命名空间 usingSystem.IO; usingSystem.Text; ///<summary> ///SummarydescriptionforJsonHelper ///</summary> publicclassJsonHelper { publicJsonHelper() { // //TODO:Addconstructorlogichere // } ///<summary> ///把对象序列化JSON字符串 ///</summary> ///<typeparamname="T">对象类型</typeparam> ///<paramname="obj">对象实体</param> ///<returns>JSON字符串</returns> publicstaticstringGetJson<T>(Tobj) { //记住添加引用System.ServiceModel.Web /** *如果不添加上面的引用,System.Runtime.Serialization.Json;Json是出不来的哦 **/ DataContractJsonSerializerjson=newDataContractJsonSerializer(typeof(T)); using(MemoryStreamms=newMemoryStream()) { json.WriteObject(ms,obj); stringszJson=Encoding.UTF8.GetString(ms.ToArray()); returnszJson; } } ///<summary> ///把JSON字符串还原为对象 ///</summary> ///<typeparamname="T">对象类型</typeparam> ///<paramname="szJson">JSON字符串</param> ///<returns>对象实体</returns> publicstaticTParseFormJson<T>(stringszJson) { Tobj=Activator.CreateInstance<T>(); using(MemoryStreamms=newMemoryStream(Encoding.UTF8.GetBytes(szJson))) { DataContractJsonSerializerdcj=newDataContractJsonSerializer(typeof(T)); return(T)dcj.ReadObject(ms); } } }
测试实体类:
publicclassTestData { publicTestData() { } publicintId{get;set;} publicstringName{get;set;} publicstringSex{get;set;} }
测试页面:
<%@PageLanguage="C#"%> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <scriptrunat="server"> protectedvoidPage_Load(objectsender,EventArgse) { stringjsonStr=string.Empty; List<TestData>tds=newList<TestData>(); //测试数据 for(inti=1;i<4;i++) { tds.Add(newTestData(){Id=i,Name="jinho"+i,Sex="male"}); }//把一个list转换为json字符串 jsonStr=JsonHelper.GetJson<List<TestData>>(tds); Response.Write(jsonStr); this.Page.ClientScript.RegisterStartupScript(this.GetType(),"json","getJson("+jsonStr+");",true); } </script> <scripttype="text/javascript"> functiongetJson(jsonStr){//使用eval函数 varjson=eval(jsonStr);//因为上面为list集合 for(vari=0;i<json.length;i++){ alert(json[i].Id+"Name:"+json[i].Name); } } </script> <htmlxmlns="http://www.w3.org/1999/xhtml"> <headrunat="server"> <title></title> </head> <body> <formid="form1"runat="server"> <div> </div> </form> </body> </html>
关于json字符串转换为实体请各位自己测试吧!只要有上面那个JsonHelper类,一切都好办!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。