當今的程序界Json大行其道。因為Json對象具有簡短高效等優勢,廣受廣大C#碼農喜愛。這里發一個序列化及反序列化Json對象通用類庫,希望對大家有用。
public class JsonHelper { #region 對象類型序列化為json 字符 /// <summary> /// 對象類型序列化為json 字符 /// </summary> /// <typeparam name="T">實體類型</typeparam> /// <param name="jsonObject">待轉換實體</param> /// <param name="encoding">編碼格式</param> /// <returns>string</returns> public static string ObjectToJson<T>(Object jsonObject, Encoding encoding) { string result = String.Empty; DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); using (System.IO.MemoryStream ms = new System.IO.MemoryStream()) { serializer.WriteObject(ms, jsonObject); result = encoding.GetString(ms.ToArray()); } return result; } #endregion #region json字符反序列化為對象 /// <summary> /// json字符反序列化為對象 /// </summary> /// <typeparam name="T">實體類型</typeparam> /// <param name="json">json字符串</param> /// <param name="encoding">編碼格式</param> /// <returns>T</returns> public static T JsonToObject<T>(string json, Encoding encoding) { T resultObject = default(T); try { resultObject = Activator.CreateInstance<T>(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T)); using (System.IO.MemoryStream ms = new System.IO.MemoryStream(encoding.GetBytes(json))) { resultObject = (T)serializer.ReadObject(ms); } } catch { } return resultObject; } #endregion }