• jsonHelper


        public class JsonHelper
        {
            public static string JsonSerialize<T>(T t)
            {
                DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
                MemoryStream ms = new MemoryStream();
                ser.WriteObject(ms, t);
                string jsonString = Encoding.UTF8.GetString(ms.ToArray());
                ms.Close();
                string p = @"\/Date((d+)+d+)\/";
                MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
                Regex reg = new Regex(p);
                jsonString = reg.Replace(jsonString, matchEvaluator);
                return jsonString;
            }
    
            /// <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}sd{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));
                MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
                T obj = (T)ser.ReadObject(ms);
                return obj;
            }
    
            /// <summary>
            /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串
            /// </summary>
            private static string ConvertJsonDateToDateString(Match m)
            {
                string result = string.Empty;
                DateTime dt = new DateTime(1970, 1, 1);
                dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value));
                dt = dt.ToLocalTime();
                result = dt.ToString("yyyy-MM-dd HH:mm:ss");
                return result;
            }
    
            /// <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;
            }
        }
    }

    http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html

  • 相关阅读:
    (数字类型,进制转换,字符串,列表)介绍,操作,内置方法
    谁说JavaScript容易?
    sass/scss 和 less的区别
    为什么commonjs不适合于浏览器端
    nodejs与v8引擎
    单例模式和angular的services的使用方法
    深入浅出 妙用Javascript中apply、call、bind
    单页Web应用优缺点
    JavaScript面向对象
    使用iframe的优缺点,为什么少用iframe以及iframe和frame的区别。
  • 原文地址:https://www.cnblogs.com/lzhp/p/3625439.html
Copyright © 2020-2023  润新知