Json.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Converters;
  3. using System;
  4. using System.IO;
  5. using System.Text;
  6. namespace ReleaseHelper.Utils
  7. {
  8. public static class Json
  9. {
  10. /// <summary>
  11. /// json格式解码
  12. /// </summary>
  13. /// <typeparam name="T"></typeparam>
  14. /// <param name="stream"></param>
  15. /// <returns></returns>
  16. public static T Decode<T>(Stream stream)
  17. {
  18. JsonSerializer serializer = new JsonSerializer();
  19. serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定转化日期的格式
  20. using (StreamReader sr = new StreamReader(stream, Encoding.UTF8))
  21. using (JsonReader reader = new JsonTextReader(sr))
  22. {
  23. return serializer.Deserialize<T>(reader);
  24. }
  25. }
  26. /// <summary>
  27. /// json格式解码
  28. /// </summary>
  29. /// <typeparam name="T"></typeparam>
  30. /// <param name="txt"></param>
  31. /// <returns></returns>
  32. public static T Decode<T>(string txt)
  33. {
  34. JsonSerializer serializer = new JsonSerializer();
  35. serializer.Converters.Add(new JavaScriptDateTimeConverter());//指定转化日期的格式
  36. using (StringReader sr = new StringReader(txt))
  37. using (JsonReader reader = new JsonTextReader(sr))
  38. {
  39. T res = default;
  40. try
  41. {
  42. res = serializer.Deserialize<T>(reader);
  43. }
  44. catch (Exception ex)
  45. {
  46. Console.WriteLine(ex.Message);
  47. }
  48. return res;
  49. }
  50. }
  51. /// <summary>
  52. /// json格式编码
  53. /// </summary>
  54. /// <param name="obj"></param>
  55. /// <returns></returns>
  56. public static string Encode(object obj)
  57. {
  58. return JsonConvert.SerializeObject(obj, new JavaScriptDateTimeConverter());
  59. }
  60. }
  61. }