1

我有一个提供 API 的 ASP.Net Core 3.1 项目。

我的一些 api 与 Oracle DB 交互,以获取一些数据集

这是我的一个api所做的一个简短示例:

    [HttpGet]
    [Route("api/GetMySpecificData")]
    public IActionResult getData()
    {
        ...
        var ds = new DataSet();
        OracleDataAdapter adapter = new OracleDataAdapter(query, connection);
        adapter.Fill(ds);
        return Ok(ds.Tables[0]);
    }

在我的 Oracle DB 中,列名是 UPPER_SNAKE_CASED,我希望我的 Api 以相同的属性名称格式返回数据集。(例如:USER_ID)。相反,我的客户收到不同格式的列名:userR_ID。

我根本不知道如何解决这个问题,但我想要的是接收与在 DB Column Name 中设置的格式相同的属性名称

我在 startup.cs ConfigureServices 函数中使用了这段代码:

services.AddControllers().AddNewtonsoftJson()

也许我必须添加一些选项来指定这种行为,但我不知道。

4

2 回答 2

1

我想我需要的可能是让 Newtonsoft.Json 区分大小写。

我最终要做的是:

        services.AddControllers().AddNewtonsoftJson( options =>
        {
            options.UseMemberCasing();
        });
于 2022-03-03T10:42:46.420 回答
0

尝试使用以下代码:

启动.cs

services.AddControllers().AddJsonOptions(jsonOptions =>
{
    jsonOptions.JsonSerializerOptions.PropertyNamingPolicy = null;
})

在 Asp.net Core 3 中,PropertyNamingPolicy 默认为 camelCase 并将其设置为 null 将解决您的问题。

于 2022-03-03T10:19:57.320 回答