JavaScriptSerializer的简单运用
平时在我们在很多项目中码砖时都会遇到各种需求,比如将实体信息转化成Json了后传到网页界面上绑定.或是从界面获取到一个Json对象,要将json转化为实体再做别的操作.
我们可以定义一个公共类出来,写两个方法,用于json与实体类之间的两互转换.好了,屁话不多说了.小二,上代码.....
利用.net自带的JavaScriptSerializer类就能很轻松的实现我们想要的东东.
* 对于JavaScriptSerializer类,我们先要引用一下using System.Web.Script.Serialization这个命明空间.
* 在网上简单的查了一下这个类,微软的解释如下:
* 为启用 AFAX 的应用程序提供序列化和反序列化功能.
* 其实我还真没搞明白这句话是什么意思啊思密达...
* 新建一个Web网站项目,再添加一个公共类,名字就叫:CommonSerializer,这个公共类里面就两个方法,如下:
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); } } } }
Over..
浙公网安备 33010602011771号