System.Text.Json で大文字と小文字を区別しないプロパティ名の照合を有効にする方法
この記事では、System.Text.Json
名前空間を使用して、大文字と小文字を区別しないプロパティ名の照合を有効にする方法について説明します。
大文字と小文字を区別しないプロパティ照合
既定では、逆シリアル化では JSON とターゲット オブジェクトのプロパティとの間で大文字と小文字を区別したプロパティ名の一致が検索されます。 この動作を変更するには、JsonSerializerOptions.PropertyNameCaseInsensitive を true
に設定します。
Note
Web の既定値では大文字と小文字が区別されません。
var options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
var weatherForecast = JsonSerializer.Deserialize<WeatherForecast>(jsonString, options);
Dim options As JsonSerializerOptions = New JsonSerializerOptions With {
.PropertyNameCaseInsensitive = True
}
Dim weatherForecast1 = JsonSerializer.Deserialize(Of WeatherForecast)(jsonString, options)
キャメル ケースのプロパティ名を持つ JSON の例を次に示します。 これはパスカル ケースのプロパティ名を持つ次の型に逆シリアル化できます。
{
"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
関連項目
- System.Text.Json の概要
- JSON をシリアル化および逆シリアル化する方法
- JsonSerializerOptions インスタンスのインスタンスを作成する
- プロパティの名前と値をカスタマイズする
- プロパティを無視する
- 無効な JSON を許可する
- オーバーフロー JSON を処理するか、JsonElement または JsonNode を使用する
- 参照を保持し、循環参照を処理する
- 変更できない型と非パブリック アクセサーに逆シリアル化する
- ポリモーフィックなシリアル化
- Newtonsoft.Json から System.Text.Json に移行する
- 文字エンコードをカスタマイズする
- DOM、Utf8JsonReader、Utf8JsonWriter を使用する
- JSON シリアル化のためのカスタム コンバーターの作成
- DateTime および DateTimeOffset のサポート
- ソース生成を使用する方法
- サポートされているコレクション型
- System.Text.Json API リファレンス
- System.Text.Json.Serialization API リファレンス