C# INI文件读写与JSON编码

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

INI文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,统管windows的各项配置。
INI文件读写JSON编码:

private string strFilePath = Application.StartupPath + "\\FileConfig.ini";//获取INI文件路径,自动生成
private string strSec = ""; //INI文件名        
/// <summary>
/// 写入INI文件
/// </summary>
/// <param name="section">节点名称[如[TypeName]]</param>
/// <param name="key">键</param>
/// <param name="val">值</param>
/// <param name="filepath">文件路径</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filepath);
/// <summary>
/// 读取INI文件
/// </summary>
/// <param name="section">节点名称</param>
/// <param name="key">键</param>
/// <param name="def">值</param>
/// <param name="retval">stringbulider对象</param>
/// <param name="size">字节大小</param>
/// <param name="filePath">文件路径</param>
/// <returns></returns>
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retval, int size, string filePath);
class Person
{
        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }
        private int age;
        public int Age
        {
            get { return age; }
            set { age = value; }
        }
}
private void WriteJson()
{
            Person person = new Person();
            person.Name = "GoldenEasy";
            person.Age = 25;
            string strJSON = JsonConvert.SerializeObject(person);
            strSec = Path.GetFileNameWithoutExtension(strFilePath);
            WritePrivateProfileString(strSec, "Name", strJSON, strFilePath);
            MessageBox.Show("写入成功");
}
private void ReadJson()
{
            strSec = Path.GetFileNameWithoutExtension(strFilePath);
            StringBuilder temp = new StringBuilder(1024);
            GetPrivateProfileString(strSec, "Name", "", temp, 1024, strFilePath);
            Person strJSON = (Person)JsonConvert.DeserializeObject(temp.ToString(), typeof(Person));
            MessageBox.Show(strJSON.Name);
}

猜你喜欢

转载自blog.csdn.net/lvxingzhe3/article/details/121887307