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; }
如果time是string型的就不需要转换