40 lines
1.2 KiB
C#
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);
|
|
}
|
|
}
|