Wie geben Sie im ASP.NET Core 3.0-Web-API-Projekt die Serialisierungsoptionen von System.Text.Json an , um die Pascal Case-Eigenschaften automatisch in Camel Case zu serialisieren / deserialisieren und umgekehrt?
Bei einem Modell mit Pascal Case-Eigenschaften wie:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Und Code zur Verwendung von System.Text.Json zum Deserialisieren einer JSON-Zeichenfolge in den Person
Klassentyp:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
Deserialisiert nicht erfolgreich, es sei denn, JsonPropertyName wird für jede Eigenschaft wie folgt verwendet:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
Ich habe Folgendes versucht startup.cs
, aber es hat nicht geholfen, wenn es noch benötigt wird 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;
});
Wie können Sie die Serialisierung / Deserialisierung von Camel Case in ASP.NET Core 3.0 mithilfe des neuen System.Text.Json-Namespace festlegen?
Vielen Dank!