[英]Why does Azure Functions JSON serialisation convert class property names to camel case and lower case?
我有一個 Azure Function V4。 是一個Http觸發function返回IActionResult。 我對 output JSON 的期望應該是與 C# class 的屬性名稱完全匹配的屬性名稱。但是 JSON 序列化將屬性名稱轉換為駝峰大小寫和小寫字母。
我希望 JSON object 屬性名稱字母大小寫與 model 的 C# class 成員名稱完全匹配。
C# Object
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"
}
}
正如評論中提到的@dbc ,您必須指定PropertyNamingPolicy = null
而不是PropertyNamingPolicy = JsonNamingPolicy.CamelCase
以保持屬性名稱不變。
var serializeOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = null
};
如果您使用的是駝峰式屬性命名策略( PropertyNamingPolicy = JsonNamingPolicy.CamelCase
),則可以使用[JsonPropertyName]
屬性來覆蓋屬性名稱,如下所示:
public class Contact
{
public string firstName { get; set; }
}
public class Tags
{
[JsonPropertyName(Details)]
public string GROUPCONTACT { get; set; }
}
Output:
{
"contacts": [
{
"firstName": "XXXXX"
}
],
"tags": {
"Details": "XXXXX"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.