我们正在使用 ASP.NET Core 8 Web API。我读过这篇post,但我使用
System.Text.Json
。
我有以下json:
{
"product_id": 1
}
dto 类如下所示:
public class FooDto
{
[JsonPropertyName("product_id")]
public long? ProductId { get; set; }
}
但是,ASP.NET Core Web API 8 方法的响应结果如下所示:
{
"product_id": 1
}
但是,期望的结果应该是这样的。我的意思是,Web API 应该返回以下结果:
{
"productId": 1
}
我尝试过的代码如下所示:
JsonSerializer.Deserialize<FooDto>(json);
另外,我尝试过这样的:
JsonSerializerOptions serializeOptions = new ()
{
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
WriteIndented = true
};
JsonSerializer.Deserialize<FooDto>(json, serializeOptions);
反序列化json时可以使用C#属性名吗?
根据您的要求,只需删除
[JsonPropertyName]
属性并仅使用以下代码:
JsonSerializerOptions serializeOptions = new ()
{
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
WriteIndented = true
};
JsonSerializer.Deserialize<FooDto>(json, serializeOptions);