我正在尝试反序列化一些如下所示的数据:
{
"item1":"value1",
"item2":2,
"item3":true,
"item4":{
"subItem1":"subValue1",
"subItem2":"subValue2",
}
}
在 C# 中,我希望反序列化的对象是类似以下内容的实例:
Dictionary<string, object>
其中每个 Value 对象的实际类型是: string、double、boolean 或 Dictionary<string,string>
我可以简单地使用如下语句:
JSONConvert.Deserialise<Dictionary<string,object>>(text);
但这给了我类型的 Value 对象:字符串、 double 、 bool 值或 JObject
我有兴趣研究如何路由未知的JObject
进入Dictionary<string, string>
对象。
最佳答案
您可以使用dynamic
来代替反序列化到字典
dynamic json = JsonConvert.DeserializeObject(text);
Console.WriteLine(json.item1);
Console.WriteLine(json.item4.subItem1);
JObject 还实现了 IDictionary,因此您也可以将其用作
var jobj = (JObject)JsonConvert.DeserializeObject(text);
Console.WriteLine(jobj["item4"]["subItem1"]);
关于c# - 将嵌套的 JObject 反序列化到 JSON.Net 中的 Dictionary<string,string> 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346484/