我有一个Azure Function V4。这是一个返回IActionResult的Http触发函数。我期望输出JSON的属性名称应与C#类的属性名称的字母大小写完全匹配。但JSON序列化会将属性名称转换为驼峰式大小写和小写。
我希望JSON对象属性名称的字母大小写与该模型的C#类成员名称的字母大小写完全匹配。
C#对象
public string JobId { get; set; }
public List<Contact> Contacts { get; set; }
public Tags Tags { get; set; }
public class Contact
{
public string firstName { get; set; }
}
public class Tags
{
public string GROUPCONTACT { get; set; }
}
JSON结果实际值
{
"jobId": null,
"contacts": [
{
"firstName": "dummy"
}
],
"tags": {
"groupcontact": "dummy"
}
}
预期JSON结果
{
"JobId": null,
"Contacts": [
{
"firstName": "dummy"
}
],
"Tags": {
"GROUPCONTACT": "dummy"
}
}
1条答案
按热度按时间jdgnovmf1#
正如注解中提到的@dbc,您必须指定
PropertyNamingPolicy = null
而不是PropertyNamingPolicy = JsonNamingPolicy.CamelCase
以保持属性名不变。如果使用驼峰式属性命名策略(
PropertyNamingPolicy = JsonNamingPolicy.CamelCase
),则可以使用[JsonPropertyName]
属性覆盖属性名称,如下所示:输出: