0
嘿古斯我知道有类似的问题已经存在,但没有回答我的问题具体。如何浏览Cocoa中的JSON文件?
基本上我用一个小JSON文件数据库,像这样:
{
"dataBase" : [
{"version" : "0.1", "creator" : "unknown", "creationDate" : "2011-05-22 21:29:11 +0200"}],
"clients" : [
{"id" : "0", "name" : "customer1"},
{"id" : "1", "name" : "customer2", "projects" : [
{"id" : "0", "name" : "project1", "timestamps" : [
{"id" : "0", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"},
{"id" : "1", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"},
{"id" : "2", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"}
]},
{"id" : "0", "name" : "project2", "timestamps" : [
{"id" : "0", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"},
{"id" : "1", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"},
{"id" : "2", "start" : "2011-05-21 21:29:11 +0200", "stop" : "2011-05-22 21:29:11 +0200"}
]}
]}
]}
我解析JSON与YAJL框架,像这样:
yajl = [json yajl_JSON];
yajl在头作为一个NSDictionary声明
如果我问:
NSLog(@"creator Name: %@" ,[[yajl objectForKey:@"dataBase"] valueForKey:@"creator"]);
我得到这个:
2011-05-24 00:31:36.887 YAJLParser [1800:903]创作者名称:( “未知” )
因为我不知道该如何处理与这些括号,然后即时消失,但这只是问题的一小部分。
我的问题是我将如何访问,比如customer2 project2的所有时间戳? 我尝试了一切,我会找到搜索论坛,但我找不到(我安装正确)没有为我工作...
在此先感谢!
和辅助件事:'valueForKey:单曲应该是'objectForKey:'。另一方面,你也许可以使用'valueForKeyPath:';例如,'[yajl valueForKeyPath:@“clients.name”]'会为您提供所有客户端的“名称”条目数组,并且'[yajl valueForKeyPath:@“clients。@ max.id”]'将给出你使用的ID最高。有关更多信息,请参阅[KVO编程指南中的集合运算符](http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/KeyValueCoding/Articles/CollectionOperators.html)。 – 2011-05-23 23:16:34
感谢都非常快回复... 不幸的是简化版,工作... 我得到了的NSLog (空)(空)更糟糕的是,突然我得到的东西一样 警告:找不到对象文件“/ Users/gabe/Projects/YAJL-ObjC/Project/build/YAJL.build/Release/YAJL.build/Objects-normal/x86_64/yajl_gen.o“ - 没有调试信息可用于”/ Users/gabe/Projects/YAJL- ObjC /项目/../ yajl-1.0.11/yajl_gen.c”。 在控制台,即使我删除粘贴代码停留在那里... 它是XCode4? 我还有什么可以尝试访问? – bnassler 2011-05-23 23:54:46
我从头开始重写了dataSource,它现在可以工作。 objectForKey是正确的访问。 任何想做类似事情的人,我建议不要在JSON中使用数组,因为这个索引几乎破坏了KVC的原理...... – bnassler 2011-05-24 21:10:09