web-dev-qa-db-fra.com

JsonSerializerSettings et Asp.Net Core

Essayez de définir les options JsonOutputFormatter:

var jsonFormatter = (JsonOutputFormatter) options.OutputFormatters.FirstOrDefault(f => f is JsonOutputFormatter);
if (jsonFormatter != null)
{
    jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}

ou

mvcBuilder.AddJsonOptions(jsonOptions =>
    {
        jsonOptions.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
    });

Mais dès que j'ajoute ceci, je reçois:

MissingMethodException: Méthode introuvable: 'Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings ()'.

J'utilise le standard Microsoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)

Edit: Résolu en installant Newtonsoft.Json 6.0.6 (Qui rétrograde toutes les autres références)

Quelqu'un a déjà ça? Merci..

30
Senj

.Net Core 1.0 RTM est livré avec le formatage CamelCase prêt à l'emploi. Il s'agit d'un comportement changement de RC2. Toutefois, si vous devez le modifier, essayez cet extrait:

services.AddMvc()
        .AddJsonOptions(opt =>
    {
        var resolver  = opt.SerializerSettings.ContractResolver;
        if (resolver != null)
        {
            var res = resolver as DefaultContractResolver;
            res.NamingStrategy = null;  // <<!-- this removes the camelcasing
        }
    });

Plus d'informations ici .

Pour le noyau dotnet 1.0.1:

  services
            .AddMvcCore()
            .AddJsonFormatters(o => o...);
60
Jeson Martajaya

Je suppose que vous utilisez ASP.Net Core et que vous devez utiliser "Microsoft.AspNetCore.Mvc":

Alors remplacez ceci:

"Microsoft.AspNet.Mvc": "6.0.0-rc1-final"

par ça:

"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final"
1
Maxim