J'ai créé un projet API Web ASP.Net qui sera utilisé par une application mobile. J'ai besoin de la réponse json pour omettre les propriétés null au lieu de les renvoyer comme property: null
.
Comment puis-je faire ceci?
Dans la WebApiConfig
:
config.Formatters.JsonFormatter.SerializerSettings =
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};
Ou, si vous voulez plus de contrôle, vous pouvez remplacer tout le formateur:
var jsonformatter = new JsonMediaTypeFormatter
{
SerializerSettings =
{
NullValueHandling = NullValueHandling.Ignore
}
};
config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);
J'ai fini avec ce morceau de code dans le fichier startup.cs en utilisant ASP.NET5 1.0.0-beta7
services.AddMvc().AddJsonOptions(options =>
{
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});
Si vous utilisez vnext, dans les projets Web api vnext, ajoutez ce code au fichier startup.cs.
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);
});
}
Vous pouvez également utiliser les attributs [DataContract]
et [DataMember(EmitDefaultValue=false)]