ホームページ >バックエンド開発 >C++ >Json.Net を使用して派生型を効率的に逆シリアル化する方法

Json.Net を使用して派生型を効率的に逆シリアル化する方法

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-21 18:38:09270ブラウズ

How to Deserialize Derived Types Efficiently with Json.Net?

Json.Net 派生型逆シリアル化手法

Json.Net は強力な JSON シリアル化および逆シリアル化ツールですが、派生型を扱う場合、逆シリアル化はより複雑になります。この記事では、Json.Net を効率的に使用して派生型を逆シリアル化する方法について説明します。

型名処理

派生型の逆シリアル化を成功させるには、型名の処理を有効にする必要があります。この設定は、シリアル化された JSON ストリームに型名を含めるように Json.Net に指示します。デフォルトでは、型名の処理は無効になっているため、派生型を処理するときに曖昧な逆シリアル化結果が生じる可能性があります。

型名の処理を有効にする

型名の処理を有効にするには、JsonSerializerSettings オブジェクトで TypeNameHandling.All を指定します。例は次のとおりです:

<code class="language-csharp">JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };</code>

シリアル化と逆シリアル化

型名の処理を有効にすると、次のように派生型をシリアル化および逆シリアル化できます。

<code class="language-csharp">// 序列化
string Serialized = JsonConvert.SerializeObject(inheritanceList, settings);

// 反序列化
List<BaseClass> deserializedList = JsonConvert.DeserializeObject<List<BaseClass>>(Serialized, settings);</code>

重要な注意事項

型名の処理を有効にすると、いくつかの問題が発生する可能性があります:

  • データ サイズの増加: 型名が含まれるようになったため、シリアル化された JSON ストリームが大きくなります。
  • パフォーマンスへの影響: 逆シリアル化には型名と利用可能な登録型の比較が含まれるため、速度が低下する可能性があります。

概要

Json.Net で型名の処理を有効にすることで、派生型を効率的に逆シリアル化し、その継承階層を保持できます。この機能により、複雑なデータ構造を便利で信頼性の高い方法で処理できるようになります。

以上がJson.Net を使用して派生型を効率的に逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。