Estamos usando ASP.NET Core 8 Web API. Eu li este post , mas eu uso System.Text.Json
. Então não é uma pergunta duplicada.
Meus objetivos são:
- leia um json como uma string na API WEB
- então desserialize-o para classe
FooDto
e retorne-o aos clientes da WEB API.
Eu li o seguinte json do banco de dados como uma string:
{
"product_id": 1
}
A classe dto se parece com isto:
public class FooDto
{
[JsonPropertyName("product_id")]
public long? ProductId { get; set; }
}
O código que tentei se parece com este:
JsonSerializer.Deserialize<FooDto>(json);
Além disso, tentei assim:
JsonSerializerOptions serializeOptions = new ()
{
PropertyNamingPolicy = JsonNamingPolicy.SnakeCaseLower,
WriteIndented = true
};
JsonSerializer.Deserialize<FooDto>(json, serializeOptions);
Entretanto, o resultado da resposta do método ASP.NET Core Web API 8 se parece com isto:
{
"product_id": 1
}
Mas, o resultado desejado deve ser parecido com isso. Quero dizer, a Web API deve retornar o seguinte resultado para os clientes:
{
"productId": 1
}
É possível usar o nome da propriedade C# ao desserializar json?
Para sua exigência, apenas remova o
[JsonPropertyName]
atributo e use somente o seguinte código que você pode conseguir. Também certifique-se de não configurar nada sobre Serialização/Desserialização em Program.cs: