在 ASP.NET Core 8 Web API 中反序列化 json 时使用另一个名称作为响应

问题描述 投票:0回答:1

我们正在使用 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#属性名吗?

c# json asp.net-core-webapi system.text.json
1个回答
0
投票

根据您的要求,只需删除

[JsonPropertyName]
属性并仅使用以下代码:

JsonSerializerOptions serializeOptions = new ()
{
    PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
    WriteIndented = true
};
JsonSerializer.Deserialize<FooDto>(json, serializeOptions);
© www.soinside.com 2019 - 2024. All rights reserved.