Pregunta Suprimir las propiedades con valor nulo en ASP.NET Web API


Creé un proyecto de API WEB ASP.Net que será utilizado por una aplicación móvil. Necesito la respuesta json para omitir las propiedades nulas en lugar de devolverlas como property: null.

¿Cómo puedo hacer esto?


74
2018-01-23 18:23


origen


Respuestas:


En el WebApiConfig:

config.Formatters.JsonFormatter.SerializerSettings = 
                 new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore};

O bien, si desea más control, puede reemplazar el formateador completo:

var jsonformatter = new JsonMediaTypeFormatter
{
    SerializerSettings =
    {
        NullValueHandling = NullValueHandling.Ignore
    }
};

config.Formatters.RemoveAt(0);
config.Formatters.Insert(0, jsonformatter);

112
2018-01-23 18:25



Terminé con este fragmento de código en el archivo startup.cs usando ASP.NET5 1.0.0-beta7

services.AddMvc().AddJsonOptions(options =>
{
    options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
});

22
2017-10-16 09:44



Si está utilizando vnext, en proyectos vnext web api, agregue este código al archivo 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);
        });

    }

3
2018-04-22 13:01