using Newtonsoft.Json; namespace KBR.Shared.Lite.Extensions { public static class JsonExtensions { public static T? ToObject(string value) { return JsonConvert.DeserializeObject(value); } public static T? ToObjectSystemText(string value) { return System.Text.Json.JsonSerializer.Deserialize(value); } public static T? ToObject(string value, Type destType) { var result = JsonConvert.DeserializeObject(value, destType); if (result is null) { return default; } return (T)result; } public static object? ToObject(string value, Type destType) { return ToObject(value, destType); } public static T? ToObject(string value, JsonConverter[] converters) { return JsonConvert.DeserializeObject(value, converters); } public static T? ToObject(string value, Type destType, JsonConverter[] converters) { var result = JsonConvert.DeserializeObject(value, destType, converters); if (result is null) { return default; } return (T)result; } public static string ToJson(T value) { return JsonConvert.SerializeObject(value); } public static string ToJsonSystemText(T value) { return System.Text.Json.JsonSerializer.Serialize(value); } public static string ToJson(T value, JsonSerializerSettings jsonSerializerSettings) { return JsonConvert.SerializeObject(value, jsonSerializerSettings); } public static byte[] ToUtf8Bytes(object obj) { return System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(obj); } public static T? ToObject(byte[] utf8Json) { return System.Text.Json.JsonSerializer.Deserialize(utf8Json); } } }