using System; using System.Collections.Generic; using System.Text.Json; using System.Text.Json.Serialization; namespace TrainSearchWorker.Converters { public class SingleOrArrayConverter : JsonConverter> { public override List Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { if (reader.TokenType == JsonTokenType.StartArray) { return JsonSerializer.Deserialize>(ref reader, options) ?? new List(); } else { // Single element – wrap it in a list. T element = JsonSerializer.Deserialize(ref reader, options); return new List { element }; } } public override void Write(Utf8JsonWriter writer, List value, JsonSerializerOptions options) { JsonSerializer.Serialize(writer, value, options); } } }