[英]C# .net 4. Help on extracting data from a daughter group in dictionary object
我是C#编程的新手,使用.net 4.0字典时遇到麻烦。
我已通过JavaScriptSerializer
将JSON对象发送到Dictionary<string, object>
对象,该对象在提取所有数据时效果很好。
JSON链
{
"name" : "MrMonkey",
"type" : "monkey",
"location" : {
"id" : "125235",
"name" : "zoo"
},
"owner" : {
"id" : "4211",
"name" : "Biggles"
}
}
在创建的这个字典对象中,我有一个子级别,用于存储需要从字典中提取并存储在其他位置的信息。 说我要提取的是位置名称。 如您所见,它还与父级和另一个子级共享一个键名。
对于父级,我可以像contact.name = dict["name"].ToString();
一样简单地提取信息contact.name = dict["name"].ToString();
但是我将如何从子级中提取所需的信息?
我可以在JSON.net中创建解决方案,通过检查数据类型然后在数据属于某种类型时将其转换,从而使它工作起来有些麻烦,但这很麻烦,老板告诉我不要使用JSON.net。
不用尝试,我可以尝试: (dict["location"] as Dictionary<string,object>)["name"]
,就像我从您提供的JSON假定的那样,女儿本身就是再次反序列化为Dictionary
。
无论如何,调试器将在这里为您提供很多帮助。 如果在反序列化调用之后的行上设置了一个断点,则可以检查字典(将鼠标指向该字典并等待一秒钟),然后查看结构现在如何存储在C#对象中。
我会尝试创建一个用json结果填充它的类。 然后正常工作,如果需要,可以再次序列化为json。
public class MyObject
{
public string name { get;set; }
public string type { get;set; }
public Location location { get;set; }
public Owner owner { get;set; }
}
public class Location
{
public int id { get;set; }
public string name { get;set; }
}
public class Owner
{
public int id { get;set; }
public string name { get;set; }
}
您是否尝试使用dict["location"]["name"]
?
我假设子级只是被视为父级中存储的另一本词典...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.