JsonExtensions.cs 3.5 KB

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