坚持记录实属不易,希望友善多金的码友能够随手点一个赞。
共同创建氛围更加良好的开发者社区!
谢谢~
概述
本文介绍了如何在C#中使用Newtonsoft.Json库进行JSON文件的读取和写入操作。首先,通过using Newtonsoft.Json;引入命名空间。读取JSON的核心代码使用JsonSerializer的Deserialize方法,将文件内容反序列化为指定类型。示例代码展示了如何从文件中加载字典数据,并处理文件不存在或解析错误的情况。写入JSON的核心代码则使用JsonConvert.SerializeObject方法将对象序列化为JSON字符串,并通过File.WriteAllText写入文件
命名空间
using Newtonsoft.Json;
读取Json
核心代码
//核心代码
using (StreamReader file = File.OpenText(filePath))
{
JsonSerializer serializer = new JsonSerializer();
var ret = (类型)serializer.Deserialize(file, typeof(类型));
}
示例
Dictionary<string, double> LoadDictionaryFromFile()
{
Dictionary<string, double> ret = new Dictionary<string, double>();
try
{
if (!Directory.Exists(folderPath))
{
//检查文件目录是否存在
Directory.CreateDirectory(folderPath);
}
var filePath = Path.Combine(folderPath, FileName);
if (!File.Exists(filePath))
{
File.Create(filePath);
}
else
{
//核心代码
using (StreamReader file = File.OpenText(filePath))
{
JsonSerializer serializer = new JsonSerializer();
ret = (Dictionary<string, double>)serializer.Deserialize(file, typeof(Dictionary<string, double>));
}
}
}
catch (Exception ex)
{
MainDeviceProvider.Instance.Logger.Error("解析出现错误!",ex);
}
return ret;
}
写入Json
核心代码
var filePath = Path.Combine(folderPath, FileName);
string data = JsonConvert.SerializeObject(dataDictionary, Formatting.Indented);
File.WriteAllText(filePath, data);
示例
void SaveDataToFile()
{
try
{
var filePath = Path.Combine(folderPath, FileName);
string data = JsonConvert.SerializeObject(dataDictionary, Formatting.Indented);
File.WriteAllText(filePath, data);
}
catch(Exception ex)
{
MainDeviceProvider.Instance.Logger.Error("写入出现错误!", ex);
}
}