JSON.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Text;
  3. using System.Runtime.Serialization.Json;
  4. namespace ZLPlugin_LisPacs_MR.Domain.Units
  5. {
  6. /// <summary>
  7. /// 自定义Json辅助类
  8. /// </summary>
  9. class JSON
  10. {
  11. /// <summary>
  12. /// 实体类转换为JSON串
  13. /// </summary>
  14. /// <typeparam name="T">实体类类型</typeparam>
  15. /// <param name="jsonObject">实体类实例</param>
  16. /// <param name="encoding">编码</param>
  17. /// <returns></returns>
  18. public static string ObjectToJson<T>(Object jsonObject, Encoding encoding)
  19. {
  20. string result = String.Empty;
  21. DataContractJsonSerializer serializer = new DataContractJsonSerializer(jsonObject.GetType());
  22. using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
  23. {
  24. serializer.WriteObject(ms, jsonObject);
  25. result = encoding.GetString(ms.ToArray());
  26. }
  27. return result;
  28. }
  29. /// <summary>
  30. /// JSON串转换为实体类
  31. /// </summary>
  32. /// <typeparam name="T">实体类类型</typeparam>
  33. /// <param name="json">JSON串</param>
  34. /// <param name="encoding">编码</param>
  35. /// <returns></returns>
  36. public static T JsonToObject<T>(string json, Encoding encoding)
  37. {
  38. T resultObject = Activator.CreateInstance<T>();
  39. DataContractJsonSerializer serializer = new DataContractJsonSerializer(resultObject.GetType());
  40. using (System.IO.MemoryStream ms = new System.IO.MemoryStream(encoding.GetBytes(json)))
  41. {
  42. resultObject = (T)serializer.ReadObject(ms);
  43. }
  44. return resultObject;
  45. }
  46. }
  47. }