JsonExtensions.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.Text.RegularExpressions;
  5. using Newtonsoft.Json;
  6. namespace Common
  7. {
  8. /// <summary>
  9. /// 转换Json格式帮助类
  10. /// </summary>
  11. public static class JsonExtensions
  12. {
  13. /// <summary>
  14. /// 对象序列化成Json字符串
  15. /// </summary>
  16. /// <param name="obj">需要序列化的对象</param>
  17. /// <param name="isIgnoreNullValue">是否忽略值为NULL的属性,默认false</param>
  18. /// <returns></returns>
  19. public static string TryToJson(this object obj, bool isIgnoreNullValue = false)
  20. {
  21. string res;
  22. try
  23. {
  24. if (isIgnoreNullValue)
  25. {
  26. JsonSerializerSettings jsetting = new JsonSerializerSettings();
  27. JsonConvert.DefaultSettings = () =>
  28. {
  29. //日期类型默认格式化处理
  30. //jsetting.DateFormatHandling = DateFormatHandling.MicrosoftDateFormat;
  31. //jsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss";
  32. //空值处理,忽略值为NULL的属性
  33. jsetting.NullValueHandling = NullValueHandling.Ignore;
  34. return jsetting;
  35. };
  36. res = JsonConvert.SerializeObject(obj, Formatting.Indented, jsetting);
  37. }
  38. else
  39. {
  40. res = JsonConvert.SerializeObject(obj);
  41. }
  42. }
  43. catch (Exception e)
  44. {
  45. LogHelper log = new LogHelper();
  46. log.Warn(typeof(JsonExtensions), "对象序列化成Json字符串失败,方法:TryToJson(),异常信息:" + e.Message);
  47. res = "";
  48. }
  49. return res;
  50. }
  51. /// <summary>
  52. /// Json字符串反序列化成对象集合
  53. /// </summary>
  54. /// <typeparam name="T"></typeparam>
  55. /// <param name="json"></param>
  56. /// <returns></returns>
  57. public static List<T> JsonToList<T>(this string json)
  58. {
  59. try
  60. {
  61. return JsonConvert.DeserializeObject<List<T>>(json);
  62. }
  63. catch (Exception e)
  64. {
  65. LogHelper log = new LogHelper();
  66. log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToList<T>(),异常信息:" + e.Message);
  67. }
  68. return default(List<T>);
  69. }
  70. /// <summary>
  71. /// Json字符串反序列化成实体对象
  72. /// </summary>
  73. /// <typeparam name="T"></typeparam>
  74. /// <param name="json"></param>
  75. /// <returns></returns>
  76. public static T JsonToEntity<T>(this string json)
  77. {
  78. try
  79. {
  80. return JsonConvert.DeserializeObject<T>(json);
  81. }
  82. catch (Exception e)
  83. {
  84. LogHelper log = new LogHelper();
  85. log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n");
  86. log.Warn(typeof(JsonExtensions), "Json字符串序列化成对象失败,方法:JsonToEntity<T>(),异常信息:" + e.Message + "\r\n");
  87. log.Warn(typeof(JsonExtensions), json + "\r\n");
  88. log.Warn(typeof(JsonExtensions), "\r\n===============================================================================\r\n");
  89. }
  90. return default(T);
  91. }
  92. }
  93. }