using System.Collections.Generic;
using System.Text.Json.Serialization;
public class IntListConverter : System.Text.Json.Serialization.JsonConverter<List<int>>
public override List<int> Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
if (reader.TokenType == JsonTokenType.StartArray)
List<int> numbers = new List<int>();
if (reader.TokenType == JsonTokenType.EndArray)
var sValue = reader.GetString();
if (Int32.TryParse(sValue,out int value))
throw new System.Text.Json.JsonException("Invalid JSON format.");
public override void Write(Utf8JsonWriter writer, List<int> value, JsonSerializerOptions options)
writer.WriteStartArray();
foreach (int number in value)
writer.WriteNumberValue(number);
public static void Main()
var asd = Newtonsoft.Json.JsonConvert.DeserializeObject< List<int> >("[\"1\",\"3\",\"2\"]");
Console.WriteLine(string.Join(",",asd));
JsonSerializerOptions options = new JsonSerializerOptions();
options.Converters.Add(new IntListConverter());
var asd2 = System.Text.Json.JsonSerializer.Deserialize<List<int>>("[\"1\",\"3\",\"2\"]",options);
Console.WriteLine(string.Join(",",asd2));