web-dev-qa-db-fra.com

Comment utiliser Newtonsoft.Json par défaut dans Asp.net Core Web Api?

Je suis nouveau sur ASP.Net Web Api Core. J'utilise ASP.Net MVC depuis quelques années et j'ai toujours écrit un ActionFilter et utilisé JSON.Net Pour Serializing données dans JSON. Donc, de cette façon, j'ai remplacé le JavaScript Serializer De Microsoft (qui est plus lent que JSON.Net) Par JSON.Net (Il est censé être 400% plus rapide).

Comment faire tout cela dans ASP.Net Web Api Core? Où changer le formateur par défaut?

Remarque: n'hésitez pas à demander si vous avez des questions.

Merci

20
Super Coder

ASP.NET Core utilise déjà JSON.NET car JavaScriptSerializer n'est pas implémenté/porté sur .NET Core.

Microsoft.AspNetCore.Mvc dépend de Microsoft.AspNetCore.Formatter.Json qui dépend de Microsoft.AspNetCore.JsonPatch, qui dépend de Newtonsoft.Json (voir source ).

Mise à jour

Cela n'est vrai que pour ASP.NET Core 1.0 à 2.2. ASP.NET Core 3.0 supprime la dépendance sur JSON.NET et utilise son propre sérialiseur JSON.

28
Tseng

voici un extrait de code pour ajuster les paramètres d'une application de base .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;
        });
}
5
Kieran