Extensions.cs 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. using Newtonsoft.Json.Linq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Data;
  7. using System.Linq;
  8. using System.Text;
  9. namespace WCS.Data
  10. {
  11. /// <summary>
  12. /// 扩展.json序列反序列化
  13. /// </summary>
  14. public static partial class Extensions
  15. {
  16. /// <summary>
  17. /// 转成json对象
  18. /// </summary>
  19. /// <param name="Json">json字串</param>
  20. /// <returns></returns>
  21. public static object ToJson(this string Json)
  22. {
  23. return Json == null ? null : JsonConvert.DeserializeObject(Json);
  24. }
  25. /// <summary>
  26. /// 转成json字串
  27. /// </summary>
  28. /// <param name="obj">对象</param>
  29. /// <returns></returns>
  30. public static string ToJson(this object obj)
  31. {
  32. var timeConverter = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
  33. return JsonConvert.SerializeObject(obj, timeConverter);
  34. }
  35. /// <summary>
  36. /// 转成json字串
  37. /// </summary>
  38. /// <param name="obj">对象</param>
  39. /// <param name="datetimeformats">时间格式化</param>
  40. /// <returns></returns>
  41. public static string ToJson(this object obj, string datetimeformats)
  42. {
  43. var timeConverter = new IsoDateTimeConverter { DateTimeFormat = datetimeformats };
  44. return JsonConvert.SerializeObject(obj, timeConverter);
  45. }
  46. /// <summary>
  47. /// 字串反序列化成指定对象实体
  48. /// </summary>
  49. /// <typeparam name="T">实体类型</typeparam>
  50. /// <param name="Json">字串</param>
  51. /// <returns></returns>
  52. public static T ToObject<T>(this string Json)
  53. {
  54. return Json == null ? default(T) : JsonConvert.DeserializeObject<T>(Json);
  55. }
  56. /// <summary>
  57. /// 字串反序列化成指定对象实体(列表)
  58. /// </summary>
  59. /// <typeparam name="T">实体类型</typeparam>
  60. /// <param name="Json">字串</param>
  61. /// <returns></returns>
  62. public static List<T> ToList<T>(this string Json)
  63. {
  64. return Json == null ? null : JsonConvert.DeserializeObject<List<T>>(Json);
  65. }
  66. /// <summary>
  67. /// 字串反序列化成DataTable
  68. /// </summary>
  69. /// <param name="Json">字串</param>
  70. /// <returns></returns>
  71. public static DataTable ToTable(this string Json)
  72. {
  73. return Json == null ? null : JsonConvert.DeserializeObject<DataTable>(Json);
  74. }
  75. /// <summary>
  76. /// 字串反序列化成linq对象
  77. /// </summary>
  78. /// <param name="Json">字串</param>
  79. /// <returns></returns>
  80. public static JObject ToJObject(this string Json)
  81. {
  82. return Json == null ? JObject.Parse("{}") : JObject.Parse(Json.Replace("&nbsp;", ""));
  83. }
  84. public static IList<T> Clone<T>(this IList<T> listToClone) where T : ICloneable
  85. {
  86. return listToClone.Select(item => (T)item.Clone()).ToList();
  87. }
  88. }
  89. }