MessagePackHelper.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using MessagePack;
  2. using System;
  3. namespace HaBookCms.Common.JsonHelper
  4. {
  5. public class MessagePackHelper
  6. {
  7. /// <summary>
  8. /// Json字符串转Byte
  9. /// </summary>
  10. /// <param name="json"></param>
  11. /// <returns>byte[]</returns>
  12. public static byte[] JsonToByte(string json) {
  13. return LZ4MessagePackSerializer.FromJson(json);
  14. }
  15. /// <summary>
  16. /// Json字符串转对象
  17. /// </summary>
  18. /// <typeparam name="T"></typeparam>
  19. /// <param name="json"></param>
  20. /// <returns>T</returns>
  21. public static T JsonToObject<T>(string json){
  22. Type type = typeof(T);
  23. return (T)LZ4MessagePackSerializer.NonGeneric.Deserialize(type, JsonToByte(json));
  24. }
  25. /// <summary>
  26. /// 对象转Byte
  27. /// </summary>
  28. /// <param name="obj"></param>
  29. /// <returns>byte[]</returns>
  30. public static byte[] ObjectToByte(Object obj) {
  31. return LZ4MessagePackSerializer.Serialize(obj);
  32. }
  33. /// <summary>
  34. /// 对象转Json
  35. /// </summary>
  36. /// <param name="obj"></param>
  37. /// <returns>string</returns>
  38. public static string ObjectToJson(Object obj) {
  39. return LZ4MessagePackSerializer.ToJson(ObjectToByte(obj));
  40. }
  41. /// <summary>
  42. /// byte转Json
  43. /// </summary>
  44. /// <param name="bt"></param>
  45. /// <returns></returns>
  46. public static string byteToJson(byte[] bt) {
  47. return LZ4MessagePackSerializer.ToJson(bt);
  48. }
  49. /// <summary>
  50. /// byte转对象
  51. /// </summary>
  52. /// <typeparam name="T"></typeparam>
  53. /// <param name="bt"></param>
  54. /// <returns></returns>
  55. public static T byteToObject<T>(byte[] bt) {
  56. Type type = typeof(T);
  57. return (T)LZ4MessagePackSerializer.NonGeneric.Deserialize(type, bt);
  58. }
  59. }
  60. }