当前位置: 代码迷 >> ASP.NET >> json 序列化有错误怎么办
  详细解决方案

json 序列化有错误怎么办

热度:11131   发布时间:2013-02-25 00:00:00.0
json 序列化有异常怎么处理
  我要写一个公共类,类里面可以序列化json 就是可以到后期调用。。。。就是序列化报错的时候我要怎么处理?还有有没有json  实例化的源码、、、、、、

------解决方案--------------------------------------------------------
如果不是正常的JSON格式,当然要抛出异常

c# 解析JSON的几种办法
------解决方案--------------------------------------------------------
Newtonsoft.Json.Net20.dll  用这个
------解决方案--------------------------------------------------------

     /// <summary>
        /// JSON反序列化
        /// </summary>
        public static T JsonDeserialize<T>(string jsonString)
        {
 
            //将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"\/Date(1294499956278+0800)\/"格式
 
            string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";
 
            MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
 
            Regex reg = new Regex(p);
 
            jsonString = reg.Replace(jsonString, matchEvaluator);
 
            DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
 
            using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString)))
            {
                T obj = (T)ser.ReadObject(ms);
                return obj;
            }
        }
        /// <summary>
        /// 将时间字符串转为Json时间
        /// </summary>
        private static string ConvertDateStringToJsonDate(Match m)
        {
 
            string result = string.Empty;
 
            DateTime dt = DateTime.Parse(m.Groups[0].Value);
 
            dt = dt.ToUniversalTime();
 
            TimeSpan ts = dt - DateTime.Parse("1970-01-01");
 
            result = string.Format("\\/Date({0}+0800)\\/", ts.TotalMilliseconds);
 
            return result;
 
        }


调用   JsonDeserialize<model>(json字符串); 
  相关解决方案