28 lines
940 B
C#
28 lines
940 B
C#
using System.Text;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
|
|
namespace ShrinkDataSaver
|
|
{
|
|
public static class DataSerializer
|
|
{
|
|
private static readonly JsonSerializerSettings Settings = new()
|
|
{
|
|
NullValueHandling = NullValueHandling.Ignore,
|
|
DefaultValueHandling = DefaultValueHandling.Include,
|
|
Formatting = Formatting.None
|
|
};
|
|
|
|
public static byte[] Serialize<T>(T obj)
|
|
=> Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Settings));
|
|
|
|
public static T Deserialize<T>(byte[] data)
|
|
=> JsonConvert.DeserializeObject<T>(Encoding.UTF8.GetString(data), Settings);
|
|
|
|
public static JObject ToJObject(byte[] data)
|
|
=> JObject.Parse(Encoding.UTF8.GetString(data));
|
|
|
|
public static byte[] FromJObject(JObject obj)
|
|
=> Encoding.UTF8.GetBytes(obj.ToString(Formatting.None));
|
|
}
|
|
} |