如何从JSON文本中获取反序列化C#对象的类型?
我正在尝试获取JSON文本中的序列化C#对象类型($type in JSON Text),而无需再次将JSON文本反序列化到对象。你能告诉我我有什么选择吗 我正在使用Newtonsoft库进行序列化和序列化如何从JSON文本中获取反序列化C#对象的类型?,c#,.net,json,wcf,json.net,C#,.net,Json,Wcf,Json.net,我正在尝试获取JSON文本中的序列化C#对象类型($type in JSON Text),而无需再次将JSON文本反序列化到对象。你能告诉我我有什么选择吗 我正在使用Newtonsoft库进行序列化和序列化 提前感谢我不使用Newtonsoft库。但是,假设$type在文件的开头或结尾,我可能会使用字符串函数(下面的psudocode),这会非常快 查找$type i=查找下一个冒号 j=查找下一个逗号 在i和j之间获取令牌 修剪那个标记 使用令牌做一些有用的事情。用倒影把它打印出来 听起来
提前感谢我不使用Newtonsoft库。但是,假设$type在文件的开头或结尾,我可能会使用字符串函数(下面的psudocode),这会非常快
- 查找$type
- i=查找下一个冒号
- j=查找下一个逗号
- 在i和j之间获取令牌
- 修剪那个标记
- 使用令牌做一些有用的事情。用倒影把它打印出来
听起来怎么样?您可以编写一个扩展方法。点击+1几次,我会考虑编写代码;-) 使用Newtonsoft库相当简单
JObject json = JObject.Parse(JsonText);
string type = json["$type"].ToString();
试试这个
var jsonObj = JObject.Parse("your json string");
var props = jsonObj.Properties();
foreach (var prop in props)
{
Console.WriteLine(prop.Value.Type);
}
我希望这对你有帮助 谢谢你的主意。我用Newtonsoft libaray解决了这个问题,并在上面发布了答案。我以为你想在不将文本解析回对象的情况下实现这个目标?因此,获得象征性的想法。如果性能是您的问题,我发布的解决方案将更好地为您服务。也许你发现这在事情的发展中并不重要,事实往往如此。