首页 > 代码库 > asp.net json 与xml 的基础事例
asp.net json 与xml 的基础事例
1 //json序列化和反序列化 using System.Runtime.Serialization.Json; 2 public static string JsonSerializer<T>(T t) 3 { 4 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); 5 MemoryStream ms = new MemoryStream(); 6 ser.WriteObject(ms, t); 7 string jsonString = Encoding.UTF8.GetString(ms.ToArray()); 8 ms.Close(); 9 //替换Json的Date字符串10 string p = @"\\/Date\((\d+)\+\d+\)\\/";11 MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);12 Regex reg = new Regex(p);13 jsonString = reg.Replace(jsonString,matchEvaluator);14 return jsonString;15 }16 17 //反序列化18 public static T JsonDeserialize<T>(string jsonString)19 {20 //将"yyyy-MM-dd HH:mm:ss"格式的字符串转为"\/Date(1294499956278+0800)\/"格式 string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";21 string p = @"\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}";22 MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);23 Regex reg = new Regex(p);24 jsonString = reg.Replace(jsonString, matchEvaluator);25 DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));26 MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));27 T obj = (T)ser.ReadObject(ms);28 return obj;29 }30 31 32 33 /// <summary> 34 /// /// 将Json序列化的时间由/Date(1294499956278+0800)转为字符串 35 /// /// </summary> 36 /// 37 38 private static string ConvertJsonDateToDateString(Match m) 39 { 40 string result = string.Empty; 41 DateTime dt = new DateTime(1970,1,1); 42 dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value)); 43 dt = dt.ToLocalTime(); 44 result = dt.ToString("yyyy-MM-dd HH:mm:ss"); 45 return result; 46 } 47 /// <summary> 48 /// 49 /// 将时间字符串转为Json时间 50 /// /// </summary> 51 /// 52 53 private static string ConvertDateStringToJsonDate(Match m) 54 { 55 string result = string.Empty; 56 DateTime dt = DateTime.Parse(m.Groups[0].Value); 57 dt = dt.ToUniversalTime(); 58 TimeSpan ts = dt - DateTime.Parse("1970-01-01"); 59 result = string.Format("\\/Date({0}+0800)\\/",ts.TotalMilliseconds); 60 return result; 61 }62 63 public class Person64 {65 public string Name { get; set; }66 public int Age { get; set; }67 public DateTime LastLoginTime { get; set; }68 }69 70 71 //序列化72 Person p = new Person();73 p.Name = "张三";74 p.Age = 28;75 p.LastLoginTime = DateTime.Now;76 string jsonString = JsonSerializer<Person>(p);77 Response.Write(jsonString);78 // 反序列化79 string json = "{\"Age\":28,\"LastLoginTime\":\"2011-01-09 00:30:00\",\"Name\":\"张三\"}";80 Person p = JsonDeserialize<Person>(json);81 Response.Write("姓名:" + p.Name + "</br>");82 Response.Write("年龄:" + p.Age+"</br>");83 Response.Write("时间:" + p.LastLoginTime);84 85 List<Person>list=new List <Person>{86 new Person{Name="张三",Age=24},87 new Person{Name="小白",Age=5}88 };89 90 string jsonString = JsonSerializer<List< Person>>(list);91 Response.Write(jsonString);92 93 Dictionary<string,string>Dic=new Dictionary<string,string>();94 Dic.Add("Name", "24");95 Dic.Add("Age","28");96 string jsonString=JsonSerializer<Dictionary<string,string>>(Dic);97 Response.Write(jsonString);
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。