JSON序列化类

    public class JsonFileHelper
    {
        public static string JsonConfigFileName = "SunSofteWareAppConfig.Json";

        #region 配置文件读写

        /// <summary>
        /// 将配置对象写入程序执行目录指定名称的文件
        /// </summary>
        /// <param name="config">配置对象</param>
        /// <param name="strConfigFileFullPath">配置文件绝对路径</param>
        /// <returns></returns>
        public static string SaveConfig(object config, string strConfigFileFullPath)
        {
            string strRes = string.Empty;
            try
            {
                if (config == null)
                {
                    if (File.Exists(strConfigFileFullPath))
                    {
                        File.Delete(strConfigFileFullPath);
                    }
                }
                string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(config, Formatting.Indented);
                File.WriteAllText(strConfigFileFullPath, strJson);
            }
            catch (Exception ex)
            {
                strRes = ex.Message;
            }
            return strRes;
        }

        /// <summary>
        /// 将配置对象写入程序执行目录指定名称的文件
        /// </summary>
        /// <param name="config">配置对象</param>
        /// <param name="strStartPath">文件存放目录</param>
        /// <param name="strConfigFileName">配置文件名称</param>
        /// <returns></returns>
        public static string SaveConfig(object config, string strStartPath, string strConfigFileName = null)
        {
            string strRes = string.Empty;
            string strFileName = string.IsNullOrEmpty(strConfigFileName) ? JsonConfigFileName : strConfigFileName;
            string strPath = Path.Combine(strStartPath, strFileName);
            return SaveConfig(config, strPath);
        }

        /// <summary>
        /// 读取配置文件的配置信息对象
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="strConfigFileFullPath">配置文件的绝对路径</param>
        /// <returns></returns>
        public static T ReadConfig<T>(string strConfigFileFullPath) where T : class
        {
            T oRes = default(T);
            try
            {
                if (File.Exists(strConfigFileFullPath))
                {
                    string strJson = File.ReadAllText(strConfigFileFullPath);
                    if (!string.IsNullOrEmpty(strJson))
                    {
                        object oConvertRes = Newtonsoft.Json.JsonConvert.DeserializeObject(strJson, typeof(T));
                        if (oConvertRes != null)
                        {
                            oRes = oConvertRes as T;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return oRes;
        }

        /// <summary>
        /// 读取配置对象信息
        /// </summary>
        /// <typeparam name="T">配置对象泛型类型信息</typeparam>
        /// <param name="strStartPath">程序启动路径</param>
        /// <param name="strName">配置文件名称</param>
        /// <returns></returns>
        public static T ReadConfig<T>(string strStartPath, string strName) where T : class
        {
            string strPath = Path.Combine(strStartPath, strName);
            return ReadConfig<T>(strPath);
        }

        #endregion
    }

 

posted @ 2025-11-27 22:59  家煜宝宝  阅读(1)  评论(0)    收藏  举报