Json.Net を使用して親オブジェクトのシリアル化を拡張し、辞書属性を含めます
オブジェクトのシリアル化に辞書などの複雑なデータ構造が含まれる場合、親オブジェクトの JSON 表現にこれらのプロパティを含める必要がある場合があります。
たとえば、辞書を含むクラス:
<code>public class Test { public string X { get; set; } public Dictionary<string, string> Y { get; set; } }</code>
期待される JSON 出力は次のとおりです:
<code>{ "X" : "value", "key1": "value1", "key2": "value2" }</code>
ここでは、辞書キーが親オブジェクトの一部として含まれています。
Json.Net 5.0.5 以降の場合、簡単な解決策は [JsonExtensionData]
属性を使用することです:
<code>public class Test { public string X { get; set; } [JsonExtensionData] public Dictionary<string, object> Y { get; set; } }</code>
辞書がこの属性でマークされている場合、そのキーと値はシリアル化中に親オブジェクトの JSON 表現に含まれます。このアプローチは逆シリアル化にも拡張され、一致しない JSON 属性が辞書に保存されます。
以上がJson.Net を使用した親オブジェクトのシリアル化にディクショナリ プロパティを含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。