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 obj) => Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(obj, Settings)); public static T Deserialize(byte[] data) => JsonConvert.DeserializeObject(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)); } }