それは次のようなJSON文字列をどのようにスカラー値として、オブジェクトの複雑なプロパティをシリアル化
{
"Name":"Johny Bravo",
"ComplexProperty":{
"Prop1":"value1",
"Prop2":"value2",
"Prop3":100
}
}
になりますとき
var a = new A();
var str = JsonConvert.SerializeObject(a);
シリアライズされた私たちは、次のクラス定義
public class A
{
public string Name { get; } = "Johny Bravo";
public B ComplexProperty { get; } = new B();
}
public class B
{
public string Prop1 { get; } = "value1";
public string Prop2 { get; } = "value2";
public int Prop3 { get; } = 100;
public override string ToString()
{
return this.Prop3.ToString();
}
}
を持っていると仮定ComplexPropertyをスカラー値としてシリアライズさせるか?望ましい結果は、このいずれかである必要があります
{
"Name":"Johny Bravo",
"ComplexProperty":100
}
ご回答ありがとうございます。私はそれのようなものを考えましたが、もしAとBが第三者図書館から来たのであれば? –
@MihailShishkovそれは何の違いもありません。 getメソッドがあるので、必要な値を持つことができます。 のようにpublic int complexValue => SomeMethod(someObjects); –
サードパーティのライブラリにAとBがあるということは、コードを変更できないことを意味します。したがって、新しい属性やプロパティを追加するだけでは不十分です。シリアル化のためだけにAのアダプタを用意すれば、あなたの提案はうまくいくはずです。 Aがたくさんのプロパティを持つ本当のクラスであると想像してください:) –