【发布时间】:2011-07-31 19:51:13
【问题描述】:
我试图在 JSON 文本(JSON 文本中的 $type)中获取序列化 C# 对象的类型,而无需再次将 JSON 文本反序列化为对象。你能建议我有什么选择吗?
我正在使用 Newtonsoft 库进行序列化和序列化。
提前致谢
【问题讨论】:
我试图在 JSON 文本(JSON 文本中的 $type)中获取序列化 C# 对象的类型,而无需再次将 JSON 文本反序列化为对象。你能建议我有什么选择吗?
我正在使用 Newtonsoft 库进行序列化和序列化。
提前致谢
【问题讨论】:
我不使用 Newtonsoft 库。但是,假设 $type 位于文件的开头或结尾,我可能会使用字符串函数(下面的伪代码),这会非常快。
查找 $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);
}
希望对您有所帮助!
【讨论】: