JsonSerialize.cs 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using Newtonsoft.Json;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Reflection;
  8. using System.Runtime.InteropServices;
  9. using System.Security.Permissions;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace NXWMS.Code.Serialize
  13. {
  14. #region JSON序列化与反序列化
  15. /// <summary>
  16. /// JSON序列化与反序列化
  17. /// </summary>
  18. public static class JsonSerialize
  19. {
  20. #region 将对象序列化为JSON格式
  21. /// <summary>
  22. /// 将对象序列化为JSON格式
  23. /// </summary>
  24. /// <param name="o">对象</param>
  25. /// <returns>json字符串</returns>
  26. public static string SerializeObject(object o)
  27. {
  28. string json = JsonConvert.SerializeObject(o);
  29. return json;
  30. }
  31. #endregion
  32. #region 解析JSON字符串生成对象实体
  33. /// <summary>
  34. /// 解析JSON字符串生成对象实体
  35. /// </summary>
  36. /// <typeparam name="T"></typeparam>
  37. /// <param name="json"></param>
  38. /// <returns>对象实体</returns>
  39. public static T DeserializeJsonToObject<T>(string json)
  40. {
  41. JsonSerializer serializer = new JsonSerializer();
  42. StringReader sr = new StringReader(json);
  43. object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));
  44. return (T)o;
  45. }
  46. #endregion
  47. #region 解析JSON字符串生成对象实体
  48. /// <summary>
  49. /// 解析JSON数组生成对象实体集合
  50. /// </summary>
  51. /// <typeparam name="T"></typeparam>
  52. /// <param name="json"></param>
  53. /// <returns>对象实体集合</returns>
  54. public static List<T> DeserializeJsonToList<T>(string json)
  55. {
  56. JsonSerializer serializer = new JsonSerializer();
  57. StringReader sr = new StringReader(json);
  58. object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
  59. List<T> list = o as List<T>;
  60. return list;
  61. }
  62. #endregion
  63. #region 反序列化JSON到给定的匿名对象
  64. /// <summary>
  65. /// 反序列化JSON到给定的匿名对象.
  66. /// </summary>
  67. /// <typeparam name="T"></typeparam>
  68. /// <param name="json"></param>
  69. /// <param name="anonymousTypeObject"></param>
  70. /// <returns>匿名对象</returns>
  71. public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
  72. {
  73. T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
  74. return t;
  75. }
  76. #endregion
  77. #region Datable转换成Json
  78. /// <summary>
  79. /// Datable转换成Json
  80. /// </summary>
  81. /// <param name="table"></param>
  82. /// <returns></returns>
  83. public static string DataTableToJsonWithJsonNet(DataTable table)
  84. {
  85. string JsonString = string.Empty;
  86. JsonString = JsonConvert.SerializeObject(table);
  87. return JsonString;
  88. }
  89. #endregion
  90. }
  91. #endregion
  92. }