Json.Net の複雑なプロパティのカスタム シリアル化と逆シリアル化
Json.Net のデフォルトの動作は、複雑なプロパティを内部の個別のオブジェクトとしてシリアル化します。 JSON 表現。ただし、プロパティを単一の値で表す場合など、特定のシナリオでは、この動作が望ましくない場合があります。
より合理化された JSON 表現を実現するには、カスタム TypeConverters または JsonConverters を実装できます。
TypeConverter のアプローチ
Json.Net は TypeConverter を利用して、カスタムのシリアル化/逆シリアル化を処理します。たとえば、StringId クラスは、カスタム StringIdConverter を使用して JSON との間で変換できます。
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // ... (implementation details for type conversion) }
JsonConverter Approach
または、Json.Net 固有を追加する場合属性は許容されますが、カスタム JsonConverter も使用できます。使用:
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // ... (implementation details for JSON conversion) }
これらのカスタム コンバーターを適用すると、Car クラスの JSON 表現を目的の形式に変換できます:
{ "Id": "someId", "Name": "Ford" }
考慮事項
コンバーターを使用する場合、異なる文化間での移植性を確保するために、カルチャ固有の変換を慎重に処理することが重要です。
さらに、TypeConverter のサポートは、使用されるバージョンとプラットフォーム (例: .Net Core とポータブル) によって異なります。したがって、具体的な実装の詳細と互換性情報については、Json.Net の公式ドキュメントを参照することをお勧めします。
以上がJson.Net で複雑なプロパティのシリアル化と逆シリアル化をカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。