ホームページ > バックエンド開発 > C++ > Json.Net でシリアル化するときに辞書キーを保持するにはどうすればよいですか?

Json.Net でシリアル化するときに辞書キーを保持するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-17 11:06:14
オリジナル
832 人が閲覧しました

How Can I Preserve Dictionary Keys When Serializing with Json.Net?

Json.Net シリアル化で辞書キーを保持する方法

Json.Net は一般的に使用されるシリアル化ライブラリですが、辞書を含むオブジェクトをシリアル化する場合、辞書キーを保持する方法の問題が発生する可能性があります。

例を見てみましょう:

<code class="language-c#">public class Test
{
    public string X { get; set; }
    public Dictionary<string, string> Y { get; set; }
}</code>
ログイン後にコピー

このオブジェクトを次の JSON 形式にシリアル化するとします:

<code class="language-json">{
    "X" : "value",
    "key1": "value1",
    "key2": "value2"
}</code>
ログイン後にコピー

ここでは、辞書キー (「key1」と「key2」) を JSON 出力に明示的に含める必要があります。

JsonExtensionData 属性を使用して辞書を保持します

Json.Net 5.0.5 以降を使用している場合は、簡単な解決策があります。 [JsonExtensionData] 属性を使用すると、ディクショナリを親オブジェクトのシリアル化された表現の一部として昇格できます。属性を辞書属性に適用するだけです:

<code class="language-c#">public class Test
{
    public string X { get; set; }

    [JsonExtensionData]
    public Dictionary<string, object> Y { get; set; }
}</code>
ログイン後にコピー

この調整により、辞書のキーと値のペアが親オブジェクトの JSON 表現にシームレスに統合されます。さらに、このメカニズムは双方向で機能するため、クラス メンバーに直接マップされない他の JSON プロパティをディクショナリに逆シリアル化できるようになります。

以上がJson.Net でシリアル化するときに辞書キーを保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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