Home > Software design >  asp .net core 6 how to update option for json serialization. Date format in Json serialization
asp .net core 6 how to update option for json serialization. Date format in Json serialization

Time:05-02

My apologies for the silly question, but I don't see a good example of how can I specify a specific format for DateTime in JSON serialization for .net core 6.

The old way, net core 3.

// in the ConfigureServices()
services.AddControllers()
    .AddJsonOptions(options =>
     {
         options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
     });

There is an example on the official website https://docs.microsoft.com/en-us/dotnet/standard/datetime/system-text-json-support

JsonSerializerOptions options = new JsonSerializerOptions();
options.Converters.Add(new DateTimeConverterForCustomStandardFormatR());

"

But how can I wire it up to DI so It is used in the Controller?

CodePudding user response:

We can try to use builder.Services.Configure<JsonOptions> to set our Serializer setting in DI container from .net core 6

JsonOptions let us configure JSON serialization settings, which might instead AddJsonOptions method.

JsonOptionsmight use same as JsonOptions object from DI in the SourceCode.

using Microsoft.AspNetCore.Http.Json;

builder.Services.Configure<JsonOptions>(options =>
{
    options.SerializerOptions.Converters.Add(new DateTimeConverterForCustomStandardFormatR());
});

I think this change is based on Microsoft wanting to introduce minimal web API with ASP.NET Core in .net 6

Minimal APIs are architected to create HTTP APIs with minimal dependencies. They are ideal for microservices and apps that want to include only the minimum files, features, and dependencies in ASP.NET Core.

  • Related