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);
}