我有一个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有答案您寻找 –