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

时间:2011-07-31 19:51:13

标签: c# .net json wcf json.net

我试图在JSON Text中获取序列化C#对象的类型(JSON文本中的$ type),而不再将JSON文本反序列化为对象。你能建议我有什么选择吗?

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

提前致谢

3 个答案:

答案 0 :(得分:1)

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

  • 查找$ type

  • i =找到下一个冒号

  • j =查找下一个逗号

  • 在i和j之间抓取令牌

  • 修剪该标记

  • 使用令牌做一些有用的事情。用反射制作一个类型吗?

听起来怎么样?当你在它时,你可以编写一个扩展方法。多次点击+1,我会考虑编写代码; - )

答案 1 :(得分:0)

使用Newtonsoft libarary非常简单。

   JObject json = JObject.Parse(JasonText);
   var  type=   json["type"];

答案 2 :(得分:0)

尝试

 var jsonObj = JObject.Parse("your json string");
 var props = jsonObj.Properties();

 foreach (var prop in props)
 {
     Console.WriteLine(prop.Value.Type);
 }

希望对您有所帮助!