Bir mobil uygulama tarafından kullanılacak bir ASP.Net WEB API Projesi oluşturdum. Onları olarak döndürmek yerine null özellikleri atlamak için json yanıtına ihtiyacım var property: null.
Bunu nasıl yapabilirim?
Bir mobil uygulama tarafından kullanılacak bir ASP.Net WEB API Projesi oluşturdum. Onları olarak döndürmek yerine null özellikleri atlamak için json yanıtına ihtiyacım var property: null.
Bunu nasıl yapabilirim?
Yanıtlar:
İçinde WebApiConfig:
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
Veya daha fazla kontrol istiyorsanız, formatlayıcının tamamını değiştirebilirsiniz:
var jsonformatter = new JsonMediaTypeFormatter
{
SerializerSettings =
{
NullValueHandling = NullValueHandling.Ignore
}
};
config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);
config.Formatters.JsonFormatter.SerializerSettings.NullValueHandling = NullValueHandling.Ignore- bu, diğer json serileştirme ayarlarını sıfırlamadan boş değer işlemeyi güncelleyecektir (özelliklerin ilk harfinde küçük harf kullanmak gibi)
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)].
ASP.NET Core 3.0 için, koddaki ConfigureServices()yöntem Startup.csşunları içermelidir:
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});
Vnext kullanıyorsanız, vnext web api projelerinde bu kodu startup.cs dosyasına ekleyin.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().Configure<MvcOptions>(options =>
{
int position = options.OutputFormatters.FindIndex(f => f.Instance is JsonOutputFormatter);
var settings = new JsonSerializerSettings()
{
NullValueHandling = NullValueHandling.Ignore
};
var formatter = new JsonOutputFormatter();
formatter.SerializerSettings = settings;
options.OutputFormatters.Insert(position, formatter);
});
}
[DataContract]Ve [DataMember(EmitDefaultValue=false)]özniteliklerini de kullanabilirsiniz