2
我有這樣的對象使用JsonConvert.DeserializeObject反序列化派生對象的列表
public class ConversationAPI
{
[JsonProperty(PropertyName = "lU")]
public DateTime LastUpdated { get; set; }
[JsonProperty(PropertyName = "m", TypeNameHandling = TypeNameHandling.All)]
public List<Message> Messages { get; set; }
}
這是我從API爲JSON發送和我在客戶端應用程序序列化。
The List<Message> Messages property contains either
[Serializable]
public class Message
{
[JsonProperty(PropertyName = "t")]
public string Text { get; set; }
[JsonProperty(PropertyName = "ty")]
public MessageType Type { get; set; }
}
或
[Serializable]
public class DerivedMessage : Message
{
[JsonProperty(PropertyName = "sos")]
public string SomeOtherStuff{ get; set; }
}
我似乎無法能夠反序列化派生類型的數組。 我已經試過這
var settings = new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.All,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
};
var conversation = JsonConvert.DeserializeObject<ConversationResponse>(response.Content, settings);
我想提示列表有兩個消息和DerivedMessage對象。
任何想法? 謝謝
感謝您發佈解決方案。不錯的工作。 – CodeChops
對其他人也很好用:) – Mihai
我寫了一個自定義轉換器,將許多變體序列化或反序列化爲true或false。 (比如1和0或者T和F)我喜歡牛頓軟件,所以我對你的問題感興趣,但是你在我可以把解決方案放在一起之前就已經回答了! :P – CodeChops