V C# objektu nazýváme property PascalCase s velkým písmenem na začátku.
public class StudentDto
{
public long Id { get; set; }
public string FirstName { get; set; }
public double LastName { get; set; }
}
Pokud na tento objekt chceme namapovat json, většinou narazíme na problém s rozdnou velikostí písmen a property se z jsonu nenamapují:
json:
{
"id": 1,
"firstName": "Jan",
"lastName": "Novák"
}
Desertializace:
var student = JsonSerializer.Deserialize<Student>(jsonString);
Property v objektu zůstanou prázdné, protože nedošlo k namapování z jsonu (rozdílná velikost písmen)
Deserializace jsonu case insensitive
Serializeru můžeme nastavit propertu aby nerozlišoval velokost písmen:
var options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
var student = JsonSerializer.Deserialize<Student>(jsonString, options);