我有一個JSON消息用一個包含另一個對象的JSON的字符串屬性進行反序列化。我有以下類JSON.NET反序列化存儲爲屬性的JSON對象
public class Envelope
{
public string Type { get; set; }
public Message InnerMessage { get; set; }
}
public class Message
{
public string From { get; set; }
public string To { get; set; }
public string Body { get; set; }
}
我收到JSON消息的格式如下:
{
Type : "send",
InnerMessage : "{ From: \"sender\", To: \"receiver\", Body: \"test\" }"
}
注意InnerMessage
包含Message
類,類的不是JSON的序列化。
如果我將InnerMessage
屬性的類型保留爲Message
,則標準JSON.NET反序列化失敗。
如果我改變InnerMessage
到string
,系列化的作品,但之後我需要的InnerMessage
內容再次反序列化到Message
類:
Envelope envelope = JsonConvert.DeserializeObject<Envelope>(jsonMessage);
Message innerMessage = JsonConvert.DeserializeObject<Envelope>(envelope.InnerMessage);
有一些辦法的Envelope
的InnerMessage
屬性保持到Message
並告訴JSON.NET將字符串值自動處理爲反序列化?
你是如何序列化的對象?當我使用'JsonConvert.SerializeObject(envelope)'時,我得到了不同的Json輸出。 –
我從web服務獲取JSON,我只需要將其反序列化到我創建的類 –
難題,看起來像@SirRufo有答案您尋找 –