C# 通过序列化和反序列化进行json字符串的简单读写操作
写操作:
- 调用JsonConvert.SerializeObject(task)进行序列化
- 使用File.WriteAllText()进行文件的写入
//参考代码段:
private void save_json()
{
try
{
//获取文件
string fp = System.Environment.CurrentDirectory + @"\test.json";
//判断文件是否存在,不存在则创建
if (!File.Exists(fp))
{
FileStream fs1 = new FileStream(fp, FileMode.Create, FileAccess.ReadWrite);
fs1.Close();
}
//Global.task表示定义类的对象
string jsonData = JsonConvert.SerializeObject(Global.task);
//File.WriteAllText(fp, jsonData);//这样直接保存会出现中文字符的乱码,默认保存unicode
File.WriteAllText(fp, jsonData, Encoding.UTF8);//设置编码方式,确保中文不乱码
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
读操作:
- 调用File.ReadAllText(file)进行读入
- 使用task = JsonConvert.DeserializeObject(File.ReadAllText(file))进行反序列化操作
private void read_json()
{
try
{
//获取文件
string fp = System.Environment.CurrentDirectory + @"\test.json";
if (File.Exists(fp))
{
//Global.task表示定义类的对象
Global.task = JsonConvert.DeserializeObject<Task>(File.ReadAllText(fp));
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}