mirror of
https://github.com/lantean-code/qbtmud.git
synced 2025-10-27 10:03:47 +00:00
36 lines
1.1 KiB
C#
36 lines
1.1 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace Lantean.QBitTorrentClient.Converters
|
|
{
|
|
internal class CommaSeparatedJsonConverter : JsonConverter<IReadOnlyList<string>>
|
|
{
|
|
public override IReadOnlyList<string>? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
|
|
{
|
|
if (reader.TokenType != JsonTokenType.String)
|
|
{
|
|
throw new JsonException("Must be of type string.");
|
|
}
|
|
|
|
List<string> list;
|
|
var value = reader.GetString();
|
|
if (string.IsNullOrEmpty(value))
|
|
{
|
|
list = [];
|
|
}
|
|
else
|
|
{
|
|
list = [.. value.Split(',', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries)];
|
|
}
|
|
|
|
return list.AsReadOnly();
|
|
}
|
|
|
|
public override void Write(Utf8JsonWriter writer, IReadOnlyList<string> value, JsonSerializerOptions options)
|
|
{
|
|
var output = string.Join(',', value);
|
|
|
|
writer.WriteStringValue(output);
|
|
}
|
|
}
|
|
} |