如何从JSON文本中获取反序列化c#对象的类型

本文关键字:反序列化 对象 类型 获取 JSON 文本 | 更新日期: 2023-09-27 18:04:19

我试图在JSON文本(JSON文本中的$type)中获得序列化的c#对象的类型,而无需将JSON文本反序列化为对象。你能建议我有哪些选择吗?

我正在使用Newtonsoft库进行序列化和序列化。

Thanks in advance

如何从JSON文本中获取反序列化c#对象的类型

我不使用Newtonsoft库。但是,假设$type在文件的开头或结尾,我可能会使用字符串函数(下面的psudocode),这将非常快。

  • 找到美元类型

  • i=find next冒号

  • j=查找下一个逗号

  • 在i和j之间抓取令牌

  • 修剪标记

  • 用令牌做一些有用的事情。用它做一个有反射的字体?

听起来怎么样?在此过程中,您可以编写一个扩展方法。按几次+1,我会考虑写代码;-)

使用Newtonsoft库相当简单。

JObject json = JObject.Parse(JsonText);
string type = json["$type"].ToString();

try this

 var jsonObj = JObject.Parse("your json string");
 var props = jsonObj.Properties();
 foreach (var prop in props)
 {
     Console.WriteLine(prop.Value.Type);
 }

我希望这对你有帮助!