System.Text.Json を使用してクラス フィールドをシリアル化および逆シリアル化します
System.Text.Json の .NET Core 3.x バージョンは、クラス フィールドのシリアル化と逆シリアル化をネイティブにサポートしていません。これは、データ ストレージのフィールドに大きく依存するクラスにとって問題になる可能性があります。
この問題を解決するために、System.Text.Json は .NET のバージョンに応じて 2 つの異なるメソッドを提供します。
.NET Core 3.x
残念ながら、.NET Core 3.x では、System.Text.Json はフィールドをサポートしていません。この制限を克服するには、フィールドのシリアル化と逆シリアル化を処理するカスタム コンバーターを作成する必要があります。
.NET 5 以降
.NET 5 以降では、JsonSerializerOptions.IncludeFields プロパティを true に設定することでパブリック フィールドをシリアル化できるようになりました。あるいは、[JsonInclude] 属性を使用してフィールドをシリアル化対象として明示的にマークすることもできます。例は次のとおりです:
<code class="language-csharp">using System.Text.Json; public class Car { public int Year { get; set; } [JsonInclude] public string Model; } static void SerializeWithFields() { var car = new Car { Model = "Fit", Year = 2008 }; var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); Console.WriteLine(json); // {"Model": "Fit", "Year": 2008} }</code>
これらの手法を活用すると、クラス フィールドを扱う場合でも、System.Text.Json を使用してクラスを効率的にシリアル化および逆シリアル化できるようになります。
以上がSystem.Text.Json を使用してクラス フィールドをシリアル化および逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。