Procédure d’activation de la correspondance de nom de propriété sans respect de la casse avec System.Text.Json

Dans cet article, vous allez apprendre à activer la correspondance de nom de propriété sans respect de la casse avec l’espace de noms System.Text.Json.

Correspondance de propriétés sans respect de la casse

Par défaut, la désérialisation recherche des correspondances de nom de propriété respectant la casse entre JSON et les propriétés de l’objet cible. Pour modifier ce comportement, définissez JsonSerializerOptions.PropertyNameCaseInsensitive sur true :

Notes

La valeur web par défaut ne respecte pas la casse.

var options = new JsonSerializerOptions
{
    PropertyNameCaseInsensitive = true
};
WeatherForecast? weatherForecast = JsonSerializer.Deserialize<WeatherForecast>(jsonString, options);
Dim options As JsonSerializerOptions = New JsonSerializerOptions With {
    .PropertyNameCaseInsensitive = True
}
Dim weatherForecast1 = JsonSerializer.Deserialize(Of WeatherForecast)(jsonString, options)

Voici un exemple JSON avec des noms de propriété CamelCase. Il peut être désérialisé dans le type suivant qui a des noms de propriété PascalCase.

{
  "date": "2019-08-01T00:00:00-07:00",
  "temperatureCelsius": 25,
  "summary": "Hot",
}
public class WeatherForecast
{
    public DateTimeOffset Date { get; set; }
    public int TemperatureCelsius { get; set; }
    public string? Summary { get; set; }
}
Public Class WeatherForecast
    Public Property [Date] As DateTimeOffset
    Public Property TemperatureCelsius As Integer
    Public Property Summary As String
End Class

Voir aussi