2017-06-16 56 views
5

Na poziomie globalnym w .NET Core (wszystkie odpowiedzi interfejsu API), jak skonfigurować plik Startup.cs, aby puste pola były usuwane/ignorowane w odpowiedziach JSON?.NET Core: Usuń puste pola z odpowiedzi interfejsu API JSON

Korzystanie Newtonsoft.Json, można zastosować następujący atrybut do własności, ale chciałbym uniknąć konieczności dodawania go do każdego z nich:

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

Odpowiedz

8

W Startup.cs można dołączyć JsonOptions do odbioru usług i ustawić różne konfiguracje, w tym usuwanie wartości null, tam:

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

można to również zrobić za kontrolera w przypadku, gdy nie chcesz zmodyfikować globalne zachowanie:

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