首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

json 序列化有错误怎么办

2013-01-11 
json 序列化有异常怎么处理我要写一个公共类,类里面可以序列化json 就是可以到后期调用。。。。就是序列化报错

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字符串); 


[解决办法]
报错的话 , try catch 加上 。 返回JSON格式的错误信息就行了

热点排行