'ASP.NET API Key's case is messed up

I use ASP.NET Core 3.1

I want my API to return some data which I format as JSON.

For some reason one sub-object that I want to return is a class instance, with properties formatted as UPPERCASE_SNAKE_CASE.

I expect my response to give me data formatted like this :

{
    "user": {
        "USER_ID": 1,
        "USER_CODE": "xxx",
        "EMAIL": "[email protected]"
    }
}

What I get instead is that some characters before the underscore char are in lowercase :

{
    "user": {
        "useR_ID": 1,
        "useR_CODE": "xxx",
        "email": "[email protected]"
    }
}

In my Startup.cs file I use the following to format :

public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers().AddNewtonsoftJson();
        ...
    }

I tried to add this line I read on other posts :

services.AddControllersWithViews().AddJsonOptions(opts => opts.JsonSerializerOptions.PropertyNamingPolicy = null);

Which didnt change anything.

I don't want all my keys to change into UPPERCASE_SNAKE_CASE, because I am using camelCase, but I want the App to follow how the Key is written in code. When I use a debugger, keys are displayed as I want them to be, it's only in the client part (Angular or Postman) that the keys are messed up.



Solution 1:[1]

Have you tried adding [JsonProperty("USER_ID")] style attributes to your class properties? – DavidG Mar 2 at 11:43

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Sonny Jayet