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

克雷格

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

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

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

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

里斯托·M

您可以将类型(类)名称嵌入到数据中。反序列化时,可以使用一点反射和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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

反序列化JSON对象时,是否可以将属性名称转换为小写?

使用PHP中的类型将嵌套对象序列化/反序列化为JSON

通过推断/嵌入对象类型来反序列化Java中的JSON

使用Json.Net进行C#枚举反序列化:将值转换为类型时出错

通过名称获取类型并将反序列化的json数据转换为该对象

Json.NET:反序列化任何类型的对象

将字符串转换为类型时出错-Newtonsoft JSON反序列化

反序列化对象数组:无法将 JSON 值转换为 System.String[]

将JSON转换为对象会引发JsonMappingException“无法从START_ARRAY令牌中反序列化类的实例”

JSON反序列化对象-.NET

将字符串传递给方法,转换为 json,然后在 .net 中反序列化

VB.NET反序列化JSON-无法将当前JSON对象反序列化为类型.Customer []',因为该类型需要JSON数组

在JSON.NET中反序列化接口对象

Json.NET可以序列化到流或从流反序列化吗?

Newtonsoft(json.net)反序列化可以在F#中变得懒惰吗?

如何使对象(具有自定义数据类型)在VB.net中可序列化,以便可以将其转换为JSON?

具有嵌入类型的反序列化JSON

将序列化表格的数据转换为json对象

反序列化 JSON 错误:类型需要 JSON 对象

我可以将平面缓冲区序列化/从JSON序列化/反序列化吗?

如何将Newton.Json反序列化的通用对象转换为自定义对象?

如何在angular2 +中序列化/反序列化.NET类型的JSON

使用 Newtonsoft.Json 反序列化 C# 对象时出错:将值“xxx”转换为类型“System.String[]”时出错

Json.Net 反序列化 JSON 对象

如何将serde_json :: Value转换为实现反序列化特征的具体类型?

使用自定义反序列化器 Jackson 将 .json 文件转换为 Java 对象

将 json 反序列化为对象 json.net

Spring MVC可以反序列化可以是对象或数组的JSON吗?

将对象转换为 serde_json::Value 无需序列化和反序列化