W projekcie ASP.NET Core 3.0 Web API, jak określasz opcje serializacji System.Text.Json, aby serializować / deserializować właściwości sprawy Pascala do Camel Case i odwrotnie automatycznie?
Biorąc pod uwagę model z właściwościami Pascal Case, takimi jak:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
I kod do użycia System.Text.Json do deserializacji ciągu JSON do typu Person
klasy:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
Nie można pomyślnie deserializować, chyba że JsonPropertyName jest używana z każdą właściwością, taką jak:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
Próbowałem następujących startup.cs
rzeczy, ale nie pomogło to w dalszym ciągu potrzebować JsonPropertyName
:
services.AddMvc().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
});
// also the following given it's a Web API project
services.AddControllers().AddJsonOptions(options => {
options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
});
Jak ustawić serializację / deserializację Camel Case w programie ASP.NET Core 3.0 za pomocą nowej przestrzeni nazw System.Text.Json?
Dzięki!