zoukankan      html  css  js  c++  java
  • 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}sd{2}:d{2}:d{2}";
    21         string p = @"d{4}-d{2}-d{2}sd{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 Person
    64     {
    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);
  • 相关阅读:
    asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
    如何清理数据库缓存
    如何在虚拟机中Linux+Oracle10gRAC安装
    ORA01031 权限不足存储过程中DBA 角色用户无法执行DDL
    如何查看存储过程执行计划
    如何查看执行计划
    如何使用tkprof
    C#位运算讲解与示例[转]
    C#中Invalidate() 方法
    如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/3835631.html
Copyright © 2011-2022 走看看