SwifterJsonSerializer.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Swifter.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. namespace Core.RabbitMQBus.EventBus
  8. {
  9. public class SwifterJsonSerializer : ISerializer
  10. {
  11. /// <summary>
  12. /// 将指定类型的实例序列化为string
  13. /// </summary>
  14. /// <param name="value"></param>
  15. /// <returns></returns>
  16. public static string SerializeObject(object value)
  17. {
  18. var strValue = JsonFormatter.SerializeObject(value);
  19. return strValue;
  20. }
  21. /// <summary>
  22. /// 将指定类型的实例序列化为Byte[]
  23. /// </summary>
  24. /// <param name="value"></param>
  25. /// <returns></returns>
  26. public static byte[] SerializeObjectToByte(object value)
  27. {
  28. var strValue = JsonFormatter.SerializeObject(value);
  29. return Encoding.Default.GetBytes(strValue);
  30. }
  31. /// <summary>
  32. /// 将 Json 字符串反序列化为指定类型的实例
  33. /// </summary>
  34. /// <typeparam name="T"></typeparam>
  35. /// <param name="value"></param>
  36. /// <returns></returns>
  37. public static T DeserializeObject<T>(string value)
  38. {
  39. return JsonFormatter.DeserializeObject<T>(value);
  40. }
  41. /// <summary>
  42. /// 根据类型解析json
  43. /// </summary>
  44. /// <param name="value"></param>
  45. /// <param name="type"></param>
  46. public static object DeserializeObject(string value, Type type)
  47. {
  48. var obj = JsonFormatter.DeserializeObject(value, type);
  49. return obj;
  50. }
  51. }
  52. }