web-dev-qa-db-ja.com

.NET Core:API JSONレスポンスからnullフィールドを削除

.NET Core 1.0(すべてのAPI応答)のグローバルレベルで、JSON応答でnullフィールドが削除/無視されるようにStartup.csを構成するにはどうすればよいですか?

Newtonsoft.Jsonを使用すると、プロパティに次の属性を適用できますが、すべてのプロパティに追加する必要はありません。

[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string FieldName { get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string OtherName { get; set; }
39
dotNetkow

Startup.csでは、JsonOptionsをサービスコレクションにアタッチして、そこでnull値の削除を含むさまざまな構成を設定できます。

public void ConfigureServices(IServiceCollection services)
{
     services.AddMvc()
             .AddJsonOptions(options => {
                options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
     });
}
72
dotNetkow

これは、グローバルな動作を変更したくない場合にコントローラーごとに実行することもできます。

public IActionResult GetSomething()
{
   var myObject = GetMyObject();
   return new JsonResult(myObject, new JsonSerializerSettings() 
   { 
       NullValueHandling = NullValueHandling.Ignore 
   });
};
6
TommyN