動的キー名を使用して子オブジェクトを逆シリアル化します
動的なキー名 (通常は数値キー) を持つサブオブジェクトを含む JSON データを扱う場合、標準の JSON.NET 手法を使用してそれらを逆シリアル化するのは困難な場合があります。
この問題を解決するには、動的なキー名を処理し、値を型指定されたコンテナーに逆シリアル化するカスタム コンバーターを作成できます。次のカスタム コンバータ TypedExtensionDataConverter<T>
は、この機能を実装します:
<code class="language-csharp">public class TypedExtensionDataConverter<T> : JsonConverter { // ... (代码已省略) }</code>
このコンバーターをクラス構造で使用して、動的キー名のサブオブジェクトがどのプロパティに含まれるかを指定できます:
<code class="language-csharp">[JsonConverter(typeof(TypedExtensionDataConverter<User>))] class User { // ... (代码已省略) }</code>
このアプローチでは、サブオブジェクトを逆シリアル化して型付きコンテナー (この場合は Dictionary<string, User>
) に保管することができ、データを操作するための構造化された簡単にアクセスできる方法を提供します。
以上がC# で動的キー名を持つ JSON 子オブジェクトを逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。