Files
Library/OwnChar/JsonHelpers.cs
Schedel Pascal b08c7619a4 uff, lot of work
2024-08-02 11:47:38 +02:00

40 lines
1.2 KiB
C#

using Newtonsoft.Json;
using OwnChar.Api.Packets;
namespace OwnChar;
public static class JsonHelpers
{
private static JsonSerializerSettings? defaultSerializerSettings;
public static JsonSerializerSettings DefaultSerializerSettings => defaultSerializerSettings ??= CreateDefaultSerializerSettings();
private static JsonSerializerSettings CreateDefaultSerializerSettings()
{
return new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Auto,
};
}
public static string? SerializeRequest<T>(T request) where T : OwnCharRequest
{
return JsonConvert.SerializeObject(request, DefaultSerializerSettings);
}
public static string? SerializeResponse<T>(T request) where T : OwnCharResponse
{
return JsonConvert.SerializeObject(request, DefaultSerializerSettings);
}
public static T? DeserializeRequest<T>(string request) where T : OwnCharRequest
{
return JsonConvert.DeserializeObject<T>(request, DefaultSerializerSettings);
}
public static T? DeserializeResponse<T>(string request) where T : OwnCharResponse
{
return JsonConvert.DeserializeObject<T>(request, DefaultSerializerSettings);
}
}