ServerManagers/Plugins/Discord/source/Plugin.Common/Utils/JsonUtils.cs
Brett Hewitson 6f671a9d57 Discord Plugin Source
Added discord plugin source to github
2020-07-11 13:09:27 +10:00

64 lines
1.7 KiB
C#
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.IO;
using System.Runtime.Serialization.Json;
namespace ServerManagerTool.Plugin.Common
{
public static class JsonUtils
{
public static T DeserializeFromFile<T>(string file)
{
if (string.IsNullOrEmpty(file) || !File.Exists(file))
return default(T);
StreamReader streamReader = null;
try
{
streamReader = File.OpenText(file);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
return (T)serializer.ReadObject(streamReader.BaseStream);
}
catch
{
return default(T);
}
finally
{
if (streamReader != null)
streamReader.Close();
}
}
public static bool SerializeToFile<T>(T value, string file)
{
if (value == null)
return false;
StreamWriter streamWriter = null;
try
{
var folder = Path.GetDirectoryName(file);
if (!Directory.Exists(folder))
Directory.CreateDirectory(folder);
streamWriter = File.CreateText(file);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
serializer.WriteObject(streamWriter.BaseStream, value);
return true;
}
catch
{
return false;
}
finally
{
if (streamWriter != null)
streamWriter.Close();
}
}
}
}