Json转换对象

DataContractJsonSerializer

        /// <summary>
        /// 日期格式转换
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="JSON"></param>
        /// <returns></returns>
        public static T GetJsonData1<T>(string JSON)
        {
            if (string.IsNullOrEmpty(JSON)) return default(T);
            // 转化日期格式 dingjm 20180907
            string pattern = @"(\d{4}-\d{2}-\d{2})|(\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2})";
            MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
            Regex reg = new Regex(pattern);
            JSON = reg.Replace(JSON, matchEvaluator);

            var ser = new DataContractJsonSerializer(typeof(T));

            using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(JSON)))
            {
                T jsonObject = (T)ser.ReadObject(ms);
                return jsonObject;
            }
        }

        /// <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;
        } 
View Code

如果time是string型的就不需要转换

posted @ 2018-09-18 16:38  江境纣州  阅读(13)  评论(0编辑  收藏  举报