C#序列化及反序列化Json對象通用類JsonHelper


當今的程序界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
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM