Как использовать Newtonsoft.Json по умолчанию в Asp.net Core Web Api?

Я новичок в ASP.Net Web Api Core. Я использовал ASP.Net MVC в течение последних нескольких лет, и я всегда писал ActionFilter и использовал JSON.Net для Serializing данных в JSON. Таким образом, я заменил Microsoft JavaScript Serializer (который медленнее, чем JSON.Net) с JSON.Net (как утверждается, на 400% быстрее).

Как сделать все это в ASP.Net Web Api Core? Где изменить default formattor?

Примечание. Пожалуйста, не стесняйтесь спрашивать, есть ли у вас какие-либо вопросы.

Спасибо

Ответ 1

ASP.NET Core уже использует JSON.NET, так как JavaScriptSerializer не реализован/портирован на .NET Core.

Microsoft.AspNetCore.Mvc зависит от Microsoft.AspNetCore.Formatter.Json который зависит от Microsoft.AspNetCore.JsonPatch, который зависит от Newtonsoft.Json (см. Источник).

Обновить

Это верно только для ASP.NET Core 1.0 до 2.2. ASP.NET Core 3.0 устраняет зависимость от JSON.NET и использует собственный сериализатор JSON.

Ответ 2

Вот фрагмент кода для настройки параметров основного приложения .net

public void ConfigureServices(IServiceCollection services)
{
    services
        .AddMvc()
        .AddJsonOptions(options => {
            // send back a ISO date
            var settings = options.SerializerSettings;
            settings.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat;
            // dont mess with case of properties
            var resolver = options.SerializerSettings.ContractResolver as DefaultContractResolver;
            resolver.NamingStrategy = null;
        });
}