使用NewtonSoft.Json
的序列化与反序列化
public static class JsonHelper
{
/// <summary>
/// 实体对象转JSON字符串
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="obj"></param>
/// <param name="path"></param>
/// <returns></returns>
public static void Serialize(this object obj, string path)
{
File.WriteAllText(path, JsonConvert.SerializeObject(obj, Formatting.Indented, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All
}));
}
/// <summary>
/// JSON字符串转实体类
/// </summary>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T Deserialize<T>(string path)
{
try
{
if (!File.Exists(path)) throw new FileNotFoundException("文件不存在");
return JsonConvert.DeserializeObject<T>(File.ReadAllText(path), new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All
});
}
catch (Exception ex)
{
Console.WriteLine(ex);
return default;
}
}
}