using Newtonsoft.Json;
using System.Collections.Generic;
using System.IO;/// <summary>
/// Json幫助類
/// </summary>
public class JsonHelper
{/// <summary>/// 將對象序列化為JSON格式/// </summary>/// <param name="o">對象</param>/// <returns>json字符串</returns>public static string SerializeObject(object o){string json = JsonConvert.SerializeObject(o);return json;}/// <summary>/// 解析JSON字符串生成對象實體/// </summary>/// <typeparam name="T">對象類型</typeparam>/// <param name="json">json字符串</param>/// <returns>對象實體</returns>public static T DeserializeJsonToObject<T>(string json) where T : class{JsonSerializer serializer = new JsonSerializer();StringReader sr = new StringReader(json);object o = serializer.Deserialize(new JsonTextReader(sr), typeof(T));T t = o as T;return t;}/// <summary>/// 解析JSON數組生成對象實體集合/// </summary>/// <typeparam name="T">對象類型</typeparam>/// <param name="json">json數組字符串</param>/// <returns>對象實體集合</returns>public static List<T> DeserializeJsonToList<T>(string json) where T : class{JsonSerializer serializer = new JsonSerializer();StringReader sr = new StringReader(json);object o = serializer.Deserialize(new JsonTextReader(sr), typeof(List<T>));List<T> list = o as List<T>;return list;}/// <summary>/// 反序列化JSON到給定的**對象./// </summary>/// <typeparam name="T">**對象類型</typeparam>/// <param name="json">json字符串</param>/// <param name="anonymousTypeObject">**對象</param>/// <returns>**對象</returns>public static T DeserializeAnonymousType<T>(string json, T anonymousTypeObject){T t = JsonConvert.DeserializeAnonymousType(json, anonymousTypeObject);return t;}
}