ในโครงการ ASP.NET Core 3.0 Web API คุณจะระบุตัวเลือกการเป็นอนุกรมSystem.Text.Jsonเพื่อทำให้เป็นอันดับ / deserialize คุณสมบัติ Pascal Case เพื่อ Camel Case และในทางกลับกันโดยอัตโนมัติได้อย่างไร
รับโมเดลที่มีคุณสมบัติ Pascal Case เช่น:
public class Person
{
public string Firstname { get; set; }
public string Lastname { get; set; }
}
และรหัสที่จะใช้ System.Text.Json เพื่อ deserialize สตริง JSON ให้เป็นประเภทของPerson
คลาส:
var json = "{\"firstname\":\"John\",\"lastname\":\"Smith\"}";
var person = JsonSerializer.Deserialize<Person>(json);
ไม่ต้องทำการดีซีเรียลไลซ์สำเร็จเว้นแต่ว่าJsonPropertyNameจะใช้กับแต่ละคุณสมบัติเช่น:
public class Person
{
[JsonPropertyName("firstname")
public string Firstname { get; set; }
[JsonPropertyName("lastname")
public string Lastname { get; set; }
}
ฉันลองสิ่งต่อไปนี้ในstartup.cs
แต่ก็ไม่ได้ช่วยในแง่ของความต้องการยังคง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;
});
คุณจะตั้ง Camel Case เป็นอนุกรม / deserialize ใน ASP.NET Core 3.0 ได้อย่างไรโดยใช้ System.Text.Json namespace ใหม่
ขอบคุณ!