web-dev-qa-db-ja.com

asp.netコア1.0 Web APIはキャメルケースを使用

オン RC2同じコードは、キャメルケース付きのjson形式を返します。 Netcore 1.0リリース後、新しいプロジェクトを開始しましたが、同じコードは小文字でjsonを返しています。

複数のソリューションを試しましたが、どれも機能していませんでした web-api-serialize-properties-starting-from-lowercase-letter

48
Brivvirs
services
    .AddMvc()
    .AddJsonOptions(options =>
    {
        options.SerializerSettings.ContractResolver
            = new Newtonsoft.Json.Serialization.DefaultContractResolver();
    });

これにより、JSONオブジェクトの名前は.NETクラスプロパティと同じになります。

105
Brivvirs

この方法でJSONの動作を構成できます。

public void ConfigureServices(IServiceCollection services)  
  {
      services.AddMvc()
                  .AddJsonOptions(options =>
                  {
                      options.SerializerSettings.ContractResolver =
                          new CamelCasePropertyNamesContractResolver();
                  });
  }
34
Siavash

これは、グローバルレベルではなく、個々のシリアライザーレベルでも実行できます。

たとえば、コントローラーアクションメソッドでオブジェクトをJSONとして返すには、次のようにします。

var jsonSerializerSettings = new JsonSerializerSettings { ContractResolver = new DefaultContractResolver() };

return new JsonResult(myObject, jsonSerializerSettings);

そして、結果のJSON文字列は、.NETクラス/プロパティ名と一致するために、予想されるPascalCaseに含まれます。

0
Jesus Campon