国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JsonHelper類(序列化和反序列化輔助類)

2019-11-15 02:30:34
字體:
來源:轉載
供稿:網友

JsonHelper類(序列化和反序列化輔助類)

1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Web;
   5: using System.Runtime.Serialization.Json;
   6: using System.IO;
   7: using System.Text;
   8: using System.Text.RegularExPRessions;
   9:  
  10: /// <summary>
  11: /// JSON序列化和反序列化輔助類
  12: /// </summary>
  13: public class JsonHelper
  14: {
  15:     /// <summary>
  16:     /// JSON序列化
  17:     /// </summary>
  18:     public static string JsonSerializer<T>(T t)
  19:     {
  20:         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  21:         MemoryStream ms = new MemoryStream();
  22:         ser.WriteObject(ms, t);
  23:         string jsonString = Encoding.UTF8.GetString(ms.ToArray());
  24:         ms.Close();
  25:         //替換Json的Date字符串
  26:         string p = @"http:///Date/((/d+)/+/d+/)///";
  27:         MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertJsonDateToDateString);
  28:          Regex reg = new Regex(p);
  29:         jsonString = reg.Replace(jsonString, matchEvaluator);
  30:         return jsonString;
  31:     }
  32:  
  33:     /// <summary>
  34:     /// JSON反序列化
  35:     /// </summary>
  36:     public static T JsonDeserialize<T>(string jsonString)
  37:     {
  38:         //將"yyyy-MM-dd HH:mm:ss"格式的字符串轉為"http://Date(1294499956278+0800)//"格式
  39:         string p = @"/d{4}-/d{2}-/d{2}/s/d{2}:/d{2}:/d{2}";
  40:         MatchEvaluator matchEvaluator = new MatchEvaluator(ConvertDateStringToJsonDate);
  41:         Regex reg = new Regex(p);
  42:         jsonString = reg.Replace(jsonString, matchEvaluator);
  43:         DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
  44:         MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
  45:         T obj = (T)ser.ReadObject(ms);
  46:         return obj;
  47:     }
  48:  
  49:     /// <summary>
  50:     /// 將Json序列化的時間由/Date(1294499956278+0800)轉為字符串
  51:     /// </summary>
  52:     private static string ConvertJsonDateToDateString(Match m)
  53:     {
  54:         string result = string.Empty;
  55:         DateTime dt = new DateTime(1970,1,1);
  56:         dt = dt.AddMilliseconds(long.Parse(m.Groups[1].Value));
  57:         dt = dt.ToLocalTime();
  58:         result = dt.ToString("yyyy-MM-dd HH:mm:ss");
  59:         return result;
  60:     }
  61:  
  62:     /// <summary>
  63:     /// 將時間字符串轉為Json時間
  64:     /// </summary>
  65:     private static string ConvertDateStringToJsonDate(Match m)
  66:     {
  67:         string result = string.Empty;
  68:         DateTime dt = DateTime.Parse(m.Groups[0].Value);
  69:         dt = dt.ToUniversalTime();
  70:         TimeSpan ts = dt - DateTime.Parse("1970-01-01");
  71:         result = string.Format("http:///Date({0}+0800)///",ts.TotalMilliseconds);
  72:         return result;
  73:     }
  74: }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿尔山市| 东阳市| 上林县| 石阡县| 泰来县| 大余县| 油尖旺区| 肃宁县| 富民县| 文登市| 封丘县| 阿合奇县| 临洮县| 车致| 曲周县| 黄骅市| 双桥区| 会宁县| 乌拉特中旗| 凭祥市| 安陆市| 青阳县| 和龙市| 靖远县| 通州市| 清镇市| 呼和浩特市| 微山县| 新干县| 辽阳市| 卢湾区| 汉寿县| 徐州市| 洛浦县| 扶余县| 漠河县| 承德市| 依安县| 安陆市| 清苑县| 谷城县|