動的キーを使用して JSON データを処理するための C# 逆シリアル化メソッド
動的キーを含む JSON 応答 (質問で提供された JSON など) を扱う場合、それを厳密に型指定された C# オブジェクトに逆シリアル化するのは困難になる可能性があります。キーは予測できないため、応答構造をクラス定義に直接マッピングすることはできません。
この問題を解決するには、C# の動的型付け機能を使用します。 Newtonsoft JSON ライブラリの JsonConvert.DeserializeObject
メソッドを使用すると、JSON を動的オブジェクトに逆シリアル化できます。この動的オブジェクトにより、JSON 応答から動的に取得された文字列キーを使用してプロパティにアクセスできます。
たとえば、次のコード スニペットは、提供された JSON 応答を動的オブジェクトに逆シリアル化する方法を示しています。
<code class="language-csharp">dynamic dynamicObject = JsonConvert.DeserializeObject<dynamic>(json);</code>
のプロパティにアクセスできるようになりました。例: dynamicObject
<code class="language-csharp">var nasdaqImbalanceName = dynamicObject["nasdaq_imbalance"].name; var dxOpenIMGroup = dynamicObject["DXOpen IM"].group;</code>
提供された JSON 応答には、次のクラス定義が適切です:
<code class="language-csharp">public class Dataset { public string name { get; set; } public string group { get; set; } public string description { get; set; } }</code>
クラスを使用して JSON を JsonConvert
オブジェクトへの文字列キーの辞書に逆シリアル化し、それをオブジェクトのリストに変換します。
Dataset
<code class="language-csharp">var dictionary = JsonConvert.DeserializeObject<Dictionary<string, Dataset>>(json); var datasetList = dictionary.Values.ToList();</code>
以上が動的キーを使用して JSON を C# に逆シリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。