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类,一切都好办!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。