initial commit; very basic REST client
This commit is contained in:
commit
6b39228b67
18 changed files with 1177 additions and 0 deletions
27
Foxcord/Serialization/JsonSerializer.cs
Normal file
27
Foxcord/Serialization/JsonSerializer.cs
Normal file
|
@ -0,0 +1,27 @@
|
|||
using System.Net.Http.Json;
|
||||
using System.Text.Json;
|
||||
using DefaultJsonSerializer = System.Text.Json.JsonSerializer;
|
||||
|
||||
namespace Foxcord.Serialization;
|
||||
|
||||
public static class JsonSerializer
|
||||
{
|
||||
private static readonly JsonSerializerOptions Options = new()
|
||||
{
|
||||
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
|
||||
PropertyNameCaseInsensitive = true
|
||||
};
|
||||
|
||||
public static string Serialize(object? value) => DefaultJsonSerializer.Serialize(value, Options);
|
||||
|
||||
public static byte[] SerializeToUtf8Bytes(object? value) =>
|
||||
DefaultJsonSerializer.SerializeToUtf8Bytes(value, Options);
|
||||
|
||||
public static TValue? Deserialize<TValue>(string json) => DefaultJsonSerializer.Deserialize<TValue>(json, Options);
|
||||
|
||||
public static ValueTask<TValue?> DeserializeAsync<TValue>(Stream json) =>
|
||||
DefaultJsonSerializer.DeserializeAsync<TValue>(json, Options);
|
||||
|
||||
public static Task<TValue?> ReadAsJsonAsync<TValue>(this HttpContent content) =>
|
||||
content.ReadFromJsonAsync<TValue>(Options);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue