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 サイトの他の関連記事を参照してください。