【发布时间】:2016-07-31 01:29:52
【问题描述】:
我正在研究一种协议,在该协议中接收器将接收某些指定自定义类型的 json 消息(当前为 5,但可能是 10-20)。我正在努力想出一个最佳/快速的解决方案,它会自动反序列化 json 并返回正确的对象类型。
例子:
public class MessageA
{
public string Message;
}
public class MessageB
{
public int value;
}
public class MessageC
{
public string ValueA;
public string ValueB;
}
理想情况下,方法应该是这样的
Object Deserialize(string json);
它将返回三种消息类型之一或 null - 以防出现解析错误/json 不匹配任何预定义类型。
更新:我可以控制发送方/接收方以及协议设计。
【问题讨论】:
-
您是发件人还是收件人,还是您可以控制两者的内容?
-
我的解决方案是将类名作为字符串发送到 Json 文件中,第一次作为 JObject 反序列化以确定类型,第二次创建对象
标签: c# json serialization json.net