您的位置:首页 > 编程学习 > ASP.NET

JavaScriptSerializer对Json对象的序列化和反序列化

更多 2015/1/30 来源:ASP.NET学习浏览量:2240
学习标签: Json 序列化
本文导读:JavaScriptSerializer 类用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据,比较常用的是与Json对象之间的转换。要添加System.Web.Extensions.dll的引用,该类位于System.Web.Script.Serialization命名空间下。

在使用JavaScriptSerializer对Json对象的序列化和反序列化时,特别需要注意对日期要特殊处理。

 

一、序列化

 

 
C# 代码   复制

public static string SerToJson(object model)

{

     return SerToJson(model,"yyyy-MM-dd HH:mm:ss");

}

 public static string SerToJson(object model,string format)
 {
     JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
     string strJson= jsonSerializer.Serialize(model);
     strJson = Regex.Replace(strJson, @"\\\\/Date\\((\\d+)\\)\\\\/", match =>
      {
                DateTime dt = new DateTime(1970, 1, 1);
                dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
                dt = dt.ToLocalTime();
                return dt.ToString(format);
      });
      return strJson;
 }

 


二、反序列化

 

 
C# 代码   复制

        public static T DesFromJson<T>(string strJson) where T : new()
        {
            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
            T model = jsonSerializer.Deserialize<T>(strJson);

            if (model == null)
                model = new T();

            return model;
        }

 

 

收藏
106
很赞
494