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);
  • 相关阅读:
    Linux Kernel 2:用户空间的初始化
    Linux Kernel系列一:开篇和Kernel启动概要
    谢宝友:会说话的Linux内核
    如何给USB移动硬盘格式化分区
    AVR单片机最小系统 基本硬件线路与分析
    Altium Designer 基本封装
    AVR单片机命名规则
    LynxFly科研小四轴横空出世,开源,F4,WIFI --(转)
    四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法—(转)
    我的四轴专用PID参数整定方法及原理---超长文慎入(转)
  • 原文地址:https://www.cnblogs.com/yangpeng-jingjing/p/3835631.html
Copyright © 2011-2022 走看看