JsonExtension.cs 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. namespace Alchemy.Core.Extensions
  4. {
  5. public static class JsonExtension
  6. {
  7. /// <summary>
  8. ///
  9. /// </summary>
  10. /// <param name="token"></param>
  11. /// <returns></returns>
  12. public static string GetValue(this JToken token)
  13. {
  14. string result = "null";
  15. switch (token.Type)
  16. {
  17. case JTokenType.Null:
  18. result = "null";
  19. break;
  20. case JTokenType.Boolean:
  21. result = $"{token}".ToLower();
  22. break;
  23. case JTokenType.String:
  24. result = $"\"{token}\"";
  25. break;
  26. default:
  27. result = $"{token}";
  28. break;
  29. }
  30. return result;
  31. }
  32. /// <summary>
  33. /// Json字符串转换为实体对象
  34. /// </summary>
  35. /// <typeparam name="T"></typeparam>
  36. /// <param name="input"></param>
  37. /// <returns></returns>
  38. public static T? FromJson<T>(this string input)
  39. {
  40. try
  41. {
  42. return JsonConvert.DeserializeObject<T>(input);
  43. }
  44. catch
  45. {
  46. return default;
  47. }
  48. }
  49. /// <summary>
  50. /// 实体对象转换为Json字符串
  51. /// </summary>
  52. /// <param name="obj">对象</param>
  53. /// <returns>Json字符串</returns>
  54. public static string ToJson(this object? obj)
  55. {
  56. if (obj.IsNull())
  57. return string.Empty;
  58. return JsonConvert.SerializeObject(obj);
  59. }
  60. /// <summary>
  61. /// 实体对象转换为Json格式化字符串
  62. /// </summary>
  63. /// <param name="obj"></param>
  64. /// <returns></returns>
  65. public static string ToPrettyJson(this object obj)
  66. {
  67. if (obj.IsNull())
  68. return string.Empty;
  69. return JsonConvert.SerializeObject(obj, Formatting.Indented);
  70. }
  71. /// <summary>
  72. /// 对象转安全Json字符串
  73. /// </summary>
  74. /// <param name="obj"></param>
  75. /// <returns></returns>
  76. public static string ToSafeJson(this object obj)
  77. {
  78. if (obj.IsNull())
  79. return string.Empty;
  80. return JsonConvert.SerializeObject(obj).Replace("\"", "\\\"");
  81. }
  82. }
  83. }