Trong dự án API Web ASP.NET Core 3.0, làm thế nào để bạn chỉ định các tùy chọn tuần tự hóa System.Text.Json để tuần tự hóa / giải tuần tự hóa các thuộc tính Pascal Case cho Camel Case và ngược lại?
Đưa ra một mô hình với các thuộc tính Trường hợp Pascal như:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
Và mã để sử dụng System.Text.Json để giải tuần tự hóa một chuỗi JSON thành loại Person
lớp:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
Không khử lưu thành công trừ khi JsonPropertyName được sử dụng với mỗi thuộc tính như:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
Tôi đã thử những điều sau đây startup.cs
, nhưng nó không giúp ích gì trong việc vẫn cần 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;
});
Làm cách nào bạn có thể thiết lập serialization / deserialize của Camel Case trong ASP.NET Core 3.0 bằng cách sử dụng không gian tên System.Text.Json mới?
Cảm ơn!