gpt4 book ai didi

json - 如何为 dotnet core api 正确设置蛇案例 JSON?

转载 作者:行者123 更新时间:2023-12-04 21:07:25 24 4
gpt4 key购买 nike

我已经成功序列化了 api 回复 snake_case在我的 Startup.cs 中使用以下命名约定.这样,它将我的 DTO 作为蛇形 JSON 返回。

services
.AddMvc()
.AddJsonOptions(x =>
{
x.SerializerSettings.ContractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
});

这就是我想要的一半。但是当我发布蛇形 JSON 时,请参见下面的示例,它不会将值绑定(bind)到我在 api 上的 DTO。例如 UserProfile数组和 CreatedOn , ModifiedOn没有得到任何值(value)。
{
"user_profiles": [
{
"id": 1,
"created_on": "2017-02-08T19:54:59.370Z",
"modified_on": "2017-02-18T14:10:42.248Z",
"email": "my@email.com",
"username": "my_username"
}
],
"id": 1,
"created_on": "2017-02-08T19:50:31.690Z",
"modified_on": 2017-02-08T19:50:31.690Z,
"name": "My Company Name"
}

设置它的正确方法是什么,以便 API 在发送到 api 时处理蛇形 JSON和 当从 api 请求时将其作为蛇盒发送?

我的 DTO
 public class CompanyDto
{
public int Id { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime ModifiedOn { get; set; }
public string Name { get; set; }
public IEnumerable<UserProfileDto> UserProfiles { get; set; }
}

public class UserProfileDto
{
public int Id { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime ModifiedOn { get; set; }
public string Email { get; set; }
public string Username { get; set; }
}

我在 Controller 上的 PUT 操作
[HttpPut("{id}")]
public async Task<IActionResult> Put(int id, [FromBody]CompanyDto value)
{
// Body
}

编辑:

好吧,事实证明我在发布到 API 的 JSON 中缺少一些值。他们是 api 所要求的,但没有得到任何错误或其他东西。

因此,要回答这个问题,根据我的经验,使用以下内容足以将 JSON 输出/输入用于 dotnet 核心 api。相反,它只是制作了预期的模型 null叹。
services
.AddMvc()
.AddJsonOptions(x =>
{
x.SerializerSettings.ContractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
});

最佳答案

从 ASP.NET Core 3.0 开始

services.AddMvc().AddNewtonsoftJson(options =>
{
options.SerializerSettings.ContractResolver = new DefaultContractResolver
{
NamingStrategy = new SnakeCaseNamingStrategy()
};
});

关于json - 如何为 dotnet core api 正确设置蛇案例 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42353847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com