ASP NET 数据集列名称格式

发布于 2025-01-11 09:03:40 字数 734 浏览 0 评论 0原文

我有一个提供 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)。相反,我的客户端收到不同格式的列名称:useR_ID。

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

我在我的startup.csConfigureServices函数中使用这段代码:

services.AddControllers().AddNewtonsoftJson()

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

I have an ASP.Net Core 3.1 project which serves APIs.

Some of my apis interact with an Oracle DB, to get some dataset

Here is a short example of what one of my api does:

    [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]);
    }

In my Oracle DB, column names are UPPER_SNAKE_CASED and I expect my Api to return the Dataset with the same format for the property names. (Example : USER_ID). Instead my client receives a different format for column names : useR_ID.

I don't know at all how to fix this, but what I want is to receive property names with the same format that it is set in the DB Column Name

I use this piece of code in my startup.cs ConfigureServices function :

services.AddControllers().AddNewtonsoftJson()

Maybe I have to add some options to specify this behaviour but I have no idea.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谜兔 2025-01-18 09:03:40

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

我最终要做的是:

        services.AddControllers().AddNewtonsoftJson( options =>
        {
            options.UseMemberCasing();
        });

I think what I need is maybe to make Newtonsoft.Json case sensitive.

What I ended up to do is the following :

        services.AddControllers().AddNewtonsoftJson( options =>
        {
            options.UseMemberCasing();
        });
总攻大人 2025-01-18 09:03:40

尝试使用下面的代码:

Starup.cs

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

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

Try using below code:

Starup.cs

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

In Asp.net Core 3 by default PropertyNamingPolicy is camelCase and set it to null will solve your problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文