System.Text.Json を使用してフィールドをシリアル化および逆シリアル化する
.NET Core 3.x では、System.Text.Json には制限があります。フィールドのシリアル化と逆シリアル化はサポートされていません。クラスでフィールドベースの変数が必要な場合、これにより問題が生じる可能性があります。
この問題を解決するには、次の 2 つの方法があります:
.NET Core 3.x の場合:
残念ながら、フィールドは .NET Core 3.x ではサポートされていません。ドキュメントで説明されているように、カスタム コンバータを使用してこの機能を実現できます。ただし、これには手動の変換プロセスを実装する必要があります。
.NET 5 以降の場合:
.NET 5 以降では、System.Text.Json を使用してパブリック フィールドをシリアル化および逆シリアル化できます。これを実現するには 2 つの方法があります:
JsonSerializerOptions.IncludeFields を true に設定して、フィールドのシリアル化を有効にします。
<code class="language-csharp">var options = new JsonSerializerOptions { IncludeFields = true }; var json = JsonSerializer.Serialize(car, options); var carDeserialized = JsonSerializer.Deserialize<Car>(json, options);</code>
または、[JsonInclude] 属性を使用して、シリアル化する特定のフィールドをマークします。
<code class="language-csharp">public class Car { [JsonInclude] public string Model; }</code>
これらの手法を適用すると、クラス フィールドが正しくシリアル化および逆シリアル化されるようになり、オブジェクト間でデータを正確に保存できるようになります。
以上が.NET で System.Text.Json を使用してフィールドをシリアル化および逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。