.net core WebApi: write a custom JsonConverter

.net core 3.0 still cannot handle TimeSpans. So I created my own TimeSpanConverter:

public class TimeSpanConverter : JsonConverter<TimeSpan> {

    public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) {
        return TimeSpan.Parse(reader.GetString());

    public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options) {

Now all it needs is registering in the startup.cs:

public void ConfigureServices(IServiceCollection services)
    services.AddControllersWithViews().AddJsonOptions(options => {
        options.JsonSerializerOptions.Converters.Add(new TimeSpanConverter());


Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.