Dalam proyek ASP.NET Core 3.0 Web API, bagaimana Anda menentukannya opsi serialisasi System.Text.Json untuk membuat serial / deserialize properti Pascal Case ke Camel Case dan sebaliknya secara otomatis?
Diberikan model dengan properti Pascal Case seperti:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Dan kode untuk menggunakan System.Text.Json untuk deserialize string JSON ke tipe Person
kelas:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
Tidak berhasil deserialize kecuali JsonPropertyName digunakan dengan masing-masing properti seperti:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
Saya mencoba yang berikut startup.cs
, tetapi tidak membantu dalam hal masih membutuhkan 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;
});
Bagaimana Anda bisa mengatur Camel Case serialize / deserialize di ASP.NET Core 3.0 menggunakan namespace System.Text.Json yang baru?
Terima kasih!