gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 03:02:01 25 4
gpt4 key购买 nike

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

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

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

问题: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);

关于c# - Json.Net 可以将反序列化对象转换为 Json 中嵌入的类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55244453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com