在项目中会遇到各种需求,比如将实体信息转化为json格式传到网页上绑定或者是从界面中获取到json对象然后要转化为实体做别的操作。
asp.net中自带的JavaScriptSerializer类可以实现上述的转化,需要引用先引用一下using System.Web.Script.Serialization这个命名空间。
这里写两个方法来实现两种转化:
using System;
using System.Web.Script.Serialization;
namespace WebSerializerDemo
{
public class CommonSerializer
{
//既然是公共的方法,当然用泛型啦..哈哈(笑二了)
public static string SerializerToJson<T>(T t)
{
//如果传过来的实体类为空..返回一个空字符串的回去.
if (t == null) return string.Empty;
//实例一个JavaScriptSerializer对象
JavaScriptSerializer serializer = new JavaScriptSerializer();
//实例一个SB对象,用于接收实体序列化后的结果.
System.Text.StringBuilder result=new System.Text.StringBuilder();
//执行序列化...
serializer.Serialize(t, result);
return result.ToString();
}
//将传过来的Json对象反序列化成我们指定的实体
public static T SerializerToEntity<T>(string json)
{
//检查一下json是否为空
if (!string.IsNullOrEmpty(json))
{
try
{
//实例一个JavaScriptSerializer对象
JavaScriptSerializer serializer = new JavaScriptSerializer();
//执行反序列化并返回一个指定类型的实体
return serializer.Deserialize<T>(json);
}
catch
{
//如果给定的Json字符串与给定的实体无法进行反序列化,根据给定的T类型返回相应的类型
//即如果T是引用类型,会返回一个null,如果是值类型,则返回一个0,如果是结构体,则返回初始化为0或为空的结构体成员的结构体
return default(T);
}
}
else
{
return default(T);
}
}
}
}
asp.net学习笔记
最新推荐文章于 2022-02-14 17:30:36 发布