Replacing Newtonsoft.Json with System.Text.Json (experimental)

This commit is contained in:
Florian Zevedei
2024-09-25 16:56:03 +02:00
parent f21dec5f1c
commit 0e8e96f2d8
8 changed files with 248 additions and 25 deletions
+8 -6
View File
@@ -1,16 +1,18 @@
using Newtonsoft.Json;
using System.Text.Json;
using System.Text;
using TelegramBotBase.Exceptions;
using System.Text.Json.Serialization;
namespace TelegramBotBase.Form;
/// <summary>
/// Base class for serializing buttons and data
/// Base class for serializing buttons and data
/// </summary>
public class CallbackData
{
public CallbackData()
{
}
public CallbackData(string method, string value)
@@ -19,9 +21,9 @@ public class CallbackData
Value = value;
}
[JsonProperty("m")] public string Method { get; set; }
[JsonPropertyName("m")] public string Method { get; set; }
[JsonProperty("v")] public string Value { get; set; }
[JsonPropertyName("v")] public string Value { get; set; }
public static string Create(string method, string value)
{
@@ -36,7 +38,7 @@ public class CallbackData
{
var s = string.Empty;
s = JsonConvert.SerializeObject(this);
s = JsonSerializer.Serialize(this);
//Is data over 64 bytes ?
int byte_count = Encoding.UTF8.GetByteCount(s);
@@ -55,7 +57,7 @@ public class CallbackData
/// <returns></returns>
public static CallbackData Deserialize(string data)
{
return JsonConvert.DeserializeObject<CallbackData>(data);
return JsonSerializer.Deserialize<CallbackData>(data);
}
public static implicit operator string(CallbackData callbackData) => callbackData.Serialize(true);