繁体   English   中英

Json.Net可以将反序列化的对象转换为Json中嵌入的类型吗?

[英]Can Json.Net cast a deserialized object to the type embedded in the Json?

上下文 :我正在将数据序列化为消息队列。 消息队列将接受需要由接收方反序列化的异构类型。

问题 :通常在反序列化时,我将使用类似以下的代码: JsonConvert.DeserializeObject<Type>(object); 但是,由于类型是异构的,因此我不会轻易知道所需的类型。

我知道我可以使用TypeNameHandling将类型嵌入JSON中,但是在调用DeserializeObject时,我仍然没有得到强类型化的结果(例如,返回的对象尚未转换为嵌入的Type)。

问题 :Json.Net可以将反序列化的对象转换为Json中嵌入的类型吗? 如果不是,我最好的选择是从JSON获取类型,然后调用DeserializeObject以使对象可以转换吗?

您可以将类型(类)名称嵌入到数据中。 反序列化时,可以使用一点反射和JsonConvert.DeserializeObject(string,Type)

string typeName; //Got from message
string json; //Got from message
Type type = Type.GetType($"Namespace.{typeName}, MyAssembly");
var obj = JsonConvert.DeserializeObject(json, type);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM