【发布时间】:2020-12-22 11:21:42
【问题描述】:
在我们的 Web API 中,我们有具有缩写名称的旧实体。我们还通过 T4 模板使用代码生成,我们希望让事情保持简单和可预测:
- 模板创建 C# 类并将属性的第一个字符大写
- 模板创建 Angular 代码并将属性的第一个字符小写
然而,来自 Web API 的 JSON 响应在决定将哪些字母转换为小写而不是仅预期的第一个字符方面发挥了一些作用。
例如,在 Visual Studio 中启动新的默认 Web API 并向WeatherForecast.cs 添加两个属性时:
public string TSTValue { get; set; }
public string TSTVL1 { get; set; }
结果是:
[
{
...
"tstValue":null,
"tstvL1":null
},
{
...
"tstValue":null,
"tstvL1":null
}
]
预期/期望的输出将是带有驼峰属性名称的结果:
[
{
...
"tSTValue":null,
"tSTVL1":null
},
{
...
"tSTValue":null,
"tSTVL1":null
}
]
如何覆盖魔术行为?
【问题讨论】:
-
你在项目中使用
System.Text.Json吗? -
如果您使用的是 System.Text.Json。您可以在您的类中使用 [JsonPropertyName("")] 属性 [JsonPropertyName("tSTValue")] public string TSTValue { get;放; } 否则你可以查看 JsonNamingPolicy.ConvertName(String) 方法来创建你自己的自定义转换方法
-
@FeiHan:是的,我们使用的是
System.Text.Json。 -
@Kwiksilver:我更喜欢保持一切尽可能干净,没有属性。我会看看你的链接,谢谢!
标签: c# json asp.net-core asp.net-core-webapi camelcasing