辞書を使用した動的キーによる JSON 逆シリアル化の柔軟な処理
JSON の世界では、動的で予測不可能なルート キーを持つ JSON 文字列に遭遇すると、オブジェクトに逆シリアル化するときに問題が発生する可能性があります。ここでは、辞書メソッドを使用してこの問題を解決する方法を示します。
たとえば、次の JSON 文字列について考えてみましょう:
<code>{ "daily": { "1337990400000": 443447, "1338076800000": 444693, "1338163200000": 452282, "1338249600000": 462189, "1338336000000": 466626 } }</code>
キーは動的であるため、ここではクラス構造を持つ JavascriptSerializer を使用するだけでは十分ではありません。より柔軟な解決策は、JSON 文字列を辞書に逆シリアル化することです。これにより、動的キーとそれに対応する値に簡単にアクセスできるようになります。
<code class="language-csharp">var deser = new JavaScriptSerializer().Deserialize<Dictionary<string, Dictionary<string, int>>>(val);</code>
この行は、キーが文字列、値が文字列キーと整数値を持つ辞書である辞書 deser を作成します。これは、JSON 文字列内の動的キーを中間辞書に効果的にマップします。
特定のデータにアクセスするには、次のコードを使用できます:
<code class="language-csharp">var justDaily = deser["daily"];</code>
justDaily 変数には、JSON 文字列からの「毎日」オブジェクトを表す辞書が含まれるようになりました。そのキーと値を反復処理して、動的なキーと対応する値を抽出できます。
<code class="language-csharp">foreach (string key in justDaily.Keys) Console.WriteLine(key + ": " + justDaily[key]);</code>
このアプローチにより、動的なルート キーを含む JSON 文字列を辞書構造に変換して処理できるようになり、データにアクセスする際の柔軟性が得られます。辞書の力を最大限に活用して、キーが予測できない場合でも JSON を簡単に逆シリアル化できます。
以上がC# で辞書を使用して動的キーで JSON を逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。