web-dev-qa-db-ja.com

JsonSerializerSettingsおよびAsp.Net Core

JsonOutputFormatterオプションを設定しようとしています:

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

または

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

しかし、これを追加するとすぐに次のようになります。

MissingMethodException:メソッドが見つかりません: 'Newtonsoft.Json.JsonSerializerSettings Microsoft.AspNet.Mvc.Formatters.JsonOutputFormatter.get_SerializerSettings()'。

標準のMicrosoft.AspNet.Mvc.Formatters.Json (6.0.0-rc1-final)を使用しています

編集: _Newtonsoft.Json 6.0.6_をインストールして解決しました(他のすべての参照をダウングレードします)

誰もがすでにそれを持っていますか?ありがとう。

30
Senj

.Net Core 1.0 RTMはすぐに使えるCamelCaseフォーマットに付属しています。これはRC2からの動作 change です。ただし、変更する必要がある場合は、このスニペットを試してください:

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

詳細情報 こちら

Dotnet core 1.0.1の場合:

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

ASP.Net Coreを使用していると仮定し、「Microsoft.AspNetCore.Mvc」を使用する必要があります。

これを置き換えます:

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

これで:

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