Json.Net を使用して JSON シリアル化で辞書をフラット化する
オブジェクトのシリアル化では、ディクショナリを親オブジェクトの JSON 表現にフラット化する必要がある場合があります。 Json.Net では、辞書を含むクラスがこれをよく示しています。
<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.Net を使用して JSON シリアル化で辞書をフラット化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。