ホームページ > バックエンド開発 > C++ > JSON.NET でディクショナリを親オブジェクト プロパティとしてシリアル化するにはどうすればよいですか?

JSON.NET でディクショナリを親オブジェクト プロパティとしてシリアル化するにはどうすればよいですか?

DDD
リリース: 2025-01-17 11:12:08
オリジナル
229 人が閲覧しました

How Can I Serialize Dictionaries as Parent Object Properties in JSON.NET?

JSON.NET: 辞書を親オブジェクトのプロパティにシリアル化します

JSON.NET でシリアル化する場合、よくある質問は、辞書プロパティを使用してオブジェクトをシリアル化する方法です。デフォルトでは、JSON.NET は辞書を親オブジェクトの一部としてシリアル化せず、代わりに辞書を無視することを選択します。この問題を解決するために、親オブジェクトの JSON 表現に辞書プロパティを含めることができるソリューションを検討します。

文字列プロパティと辞書プロパティを含むクラスを考えてみましょう。

<code>public class Test
{
    public string X { get; set; }

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

私たちが期待する JSON 出力形式は次のとおりで、辞書属性 (「key1」と「key2」) が親オブジェクトに直接ネストされています。

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

この結果を実現するには、JSON.NET 5.0.5 以降を使用し、辞書属性を次のように変更します。

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

[JsonExtensionData] 属性を辞書プロパティに適用することで、辞書のキーと値を親オブジェクトの一部としてシリアル化するように JSON.NET に指示します。さらに、このメカニズムは逆シリアル化をサポートし、クラス メンバーに対応しない JSON プロパティが拡張データ ディクショナリに格納されるようにします。

以上がJSON.NET でディクショナリを親オブジェクト プロパティとしてシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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