ホームページ > バックエンド開発 > C++ > System.Text.Json を使用してクラス フィールドをシリアル化および逆シリアル化するにはどうすればよいですか?

System.Text.Json を使用してクラス フィールドをシリアル化および逆シリアル化するにはどうすればよいですか?

Barbara Streisand
リリース: 2025-01-14 07:32:47
オリジナル
754 人が閲覧しました

How Can I Serialize and Deserialize Class Fields with System.Text.Json?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート