我正在将JSON文件序列化为nsmutabledictonary。 JSON文件具有以下格式:
{
"menu": {
"id": "file",
"value": "Files",
"menuoffiles": {
"menuitem": [
{
"value": "New",
"date": "03162011"
},
{
"value": "Open",
"date": "03162012"
},
{
"value": "Close",
"date": "03162014"
}
]
}
}
}
我的问题是来自nsmutabledictionary如何访问“open”或“close”键的值?
我真的很感谢你的帮助。
答案 0 :(得分:3)
试试这个(你不能一步完成,因为你不能在字典的同时索引数组):
NSArray *menuItems = [dict valueForKeyPath:@"menu.menuoffiles.menuitem"];
现在你可以迭代:
for (NSDictionary *menuItem in menuItems) {
if ([[menuItem objectForKey:@"value"] isEqualToString:@"Open"]]) {
//...
}
}
或过滤:
NSArray *openTimes = [menuItems filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"value == %@", @"Open"]];
取决于你将要使用的结果。
答案 1 :(得分:0)
因此,最好的方法就是使用NSLog打印出字典的格式。无论如何,您应该能够通过objectForKey访问顶级对象,然后通过objectForKey访问内部级别的对象,或者如果它是数组而不是字典则通过迭代它们。