JsonHelper.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Collections.Generic;
  2. using System.IO;
  3. using Newtonsoft.Json;
  4. /// <summary>
  5. /// Json帮助类
  6. /// </summary>
  7. public class JsonHelper
  8. {
  9. /// <summary>
  10. /// 将对象序列化为JSON格式
  11. /// </summary>
  12. /// <param name="o">对象</param>
  13. /// <returns>json字符串</returns>
  14. public static string SerializeObject(object o)
  15. {
  16. string json = JsonConvert.SerializeObject(o);
  17. return json;
  18. }
  19. /// <summary>
  20. /// 解析JSON字符串生成对象实体
  21. /// </summary>
  22. /// <typeparam name="T">对象类型</typeparam>
  23. /// <param name="json">json字符串(eg.{"ID":"112","Name":"石子儿"})</param>
  24. /// <returns>对象实体</returns>
  25. public static T DeserializeJsonToObject<T>(string json) where T : class
  26. {
  27. JsonSerializer serializer = new JsonSerializer();
  28. StringReader sr = new StringReader(json);
  29. JsonTextReader jtr = new JsonTextReader(sr);
  30. object o = serializer.Deserialize(jtr, typeof(T));
  31. T t = o as T;
  32. return t;
  33. }
  34. /// <summary>
  35. /// 解析JSON数组生成对象实体集合
  36. /// </summary>
  37. /// <typeparam name="T">对象类型</typeparam>
  38. /// <param name="json">json数组字符串(eg.[{"ID":"112","Name":"石子儿"}])</param>
  39. /// <returns>对象实体集合</returns>
  40. public static List<T> DeserializeJsonToList<T>(string json) where T : class
  41. {
  42. JsonSerializer serializer = new JsonSerializer();
  43. StringReader sr = new StringReader(json);
  44. object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));
  45. List<T> list = o as List<T>;
  46. return list;
  47. }
  48. /// <summary>
  49. /// 反序列化JSON到给定的匿名对象.
  50. /// </summary>
  51. /// <typeparam name="T">匿名对象类型</typeparam>
  52. /// <param name="json">json字符串</param>
  53. /// <param name="anonymousTypeObject">匿名对象</param>
  54. /// <returns>匿名对象</returns>
  55. public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject)
  56. {
  57. T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);
  58. return t;
  59. }
  60. }