我有一本词典。 它有3个键:种类, ID 和项。 项的值是ArrayList类型的Object,其中包含Dictionary。 如何提取此类型ArrayList enter image description here
对象内的字典类似地,内部词典有键:善意, id , etag ,自我链接, volumeInfo 即可。 除此之外, volumeInfo 的值再次由Type ArrayList的一个对象组成,该对象包含一个Dictionary。
我需要提取标题,副标题的值,来自volumeInfo最内部词典的作者
答案 0 :(得分:0)
Dictionary
和ArrayList
中的任何元素都被视为 object
,这意味着编译器不知道实际类型。要使用其中一个元素,您必须将其强制转换:
ArrayList list = (ArrayList)dict["items"];
但是,如果字典不包含"items"
键,或者"items"
键的值不是ArrayList
,则此代码将引发异常。如果您知道数据结构的内容始终相同,则不需要这样做。
您可以测试字典是否包含某个条目:
object o;
if (!dict.TryGetValue("items", out o))
{
// item not found!
}
然后测试 - 并施放 - 元素:
ArrayList items = o as ArrayList;
if (items == null)
{
// items is not an ArrayList!
}
关于投射位,访问ArrayList
是类似的。
当您创建具有“Kind”,“TotalItems”和“Items”属性的对象时,您的数据将更容易访问(并且更易于编码)。即使这个数据结构是Json或Xml反序列化的结果,也有序列化器可以反序列化为专用类。