4.7.3 Cambiando el formato del Json de los servicios

Los Json que regresan nuestros servicios tienen el nombre de las variables en minúsculas

[
    {
        "id": 1,
        "clave": 1,
        "nombre": "Análgesicos"
    }
]

Podemos cambiar el fomarto para escribir la primer letra de cada variable en mayúsculas, si el campo de la clase es compuesto como por ejemplo NombreCategoria, regresaría NombreCategoría

[
    {
        "Id": 1,
        "Clave": 1,
        "NombreCategoría": "Análgesicos"
    }
]

En nuestra clase Startup en el método ConfigureServices donde agregamos las opciones para cambiar los mensajes de error agregamos AddJsonOptions(JsonOptions => JsonOptions.SerializerSettings.ContractResolver = new DefaultContractResolver()) recuerda agregar el import con Ctrl + .

startup.cs
public void ConfigureServices(IServiceCollection services)
{
    //Indicamos que el modelo tomara los mensajes de error
    // del archivo SharedResource
    services.AddControllers()
            .SetCompatibilityVersion(CompatibilityVersion.Latest)
            .AddJsonOptions(JsonOptions =>
                    JsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null)    

También podemos cambiarla para que tome la notación conocida como camelCase. Si el nombre es compuesto la primer letra es minúscula y la primer letra que separa el nombre compuesto es mayúscula. Por ejemplo nombreCategoría. Solo debes cambiar el parámetro del ContractResolver a CamelCasePropertyNamesContractResolver

startup.cs
public void ConfigureServices(IServiceCollection services)
{
    //Indicamos que el modelo tomara los mensajes de error
    // del archivo SharedResource
    services.AddMvc().SetCompatibilityVersion
                              (CompatibilityVersion.Version_2_1)
             .AddJsonOptions(JsonOptions => 
                 JsonOptions.SerializerSettings.ContractResolver = 
                    new CamelCasePropertyNamesContractResolver())

Last updated