我有一個客戶端可以調用兩個不同版本的服務。將兩個值反序列化到同一個屬性
一個服務只發送一個值:
{
"value" : { ... }
}
第二服務始終返回多個值:
{
"values" : [
{ ... },
{ ... }
]
}
理想情況下,我想在我的客戶一個對象來表示此類,因此用戶永遠不會看到它是單個值還是多個值。
public class MyValues
{
public List<Stuff> Values { get; set; }
public Thing Other { get; set; }
}
我認爲,只有這樣,我就可以做到這一點是我將適用於MyValues
定製JsonConverter
類,但我真的只是想要做一些自定義的,當我反序列化屬性value
。我似乎無法弄清楚如果IContractResolver將是一個更好的方式去(如幻影財產莫名其妙地附加到反序列value
,並把它變成Values
MyValues。
如果我創建一個自定義轉換器,怎麼樣到我告訴它通常反序列化一切(例如,如果Other
有一個額外的屬性,確保他們得到妥善處理等)
你可以寫一個轉換器和映射到一個或另一個取決於它是什麼類型。類似的問題:[反序列化JSON屬性爲布爾或雙](http://stackoverflow.com/q/39347858/1070452) – Plutonix