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