65 votes

.NET Core: Supprimez les champs nuls de la réponse JSON de l'API

À un niveau global dans .NET Core 1.0 (toutes les réponses d'API), comment configurer Startup.cs pour que les champs nuls soient supprimés / ignorés dans les réponses JSON?

Avec Newtonsoft.Json, vous pouvez appliquer l'attribut suivant à une propriété, mais j'aimerais éviter de devoir l'ajouter à chacune d'entre elles:

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

135voto

dotNetkow Points 966

Dans Startup.cs, vous pouvez attacher JsonOptions à la collection de services et définir diverses configurations, y compris la suppression des valeurs NULL, à cet endroit:

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

17voto

TommyN Points 548

Cela peut également être fait par contrôleur si vous ne voulez pas modifier le comportement global:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X