クラスを別のクラスに統合する場合、プロパティの JSON 表現が異なるシナリオに遭遇する可能性があります。希望の出力。 Json.Net は、これを解決するためのいくつかのソリューションを提供しています。
StringId のようなプロパティの場合、カスタム TypeConverter を利用して、文字列表現と指定された型の間の変換を指定できます。
[TypeConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : TypeConverter { // Code to convert to and from the string representation }
または、専用の JsonConverters を使用することもできますJson.Net 固有の属性を持つ JsonConverter:
[JsonConverter(typeof(StringIdConverter))] class StringId { public string Value { get; set; } } class StringIdConverter : JsonConverter { // Code to handle reading and writing JSON representation }
Json.Net では、特定の型に対してコンバーターをグローバルに設定できます:
GlobalJsonConfiguration.Configuration .GetConverterCollection() .Add(new StringIdConverter());
次の点に注意してください。型コンバーターは、Json.Net 10.0.1 以降の .Net Core でのみサポートされており、Json.Net Portable では使用できません。 builds.
これらのメソッドにより、プロパティのシリアル化と逆シリアル化を柔軟に制御できるため、目的の JSON 表現を実現できます。
以上がJson.Net を使用してプロパティを値としてシリアル化/逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。