2012-03-15 64 views
0

我目前正在使用json信息獲取我稱爲json的字典。如何從我從JSON得到的字典中獲取信息 - Objective-C/IOS/xCode

NSDictionary* json=[NSJSONSerialization 
          JSONObjectWithData:responseData //1 

          options:kNilOptions 
          error:&error]; 

我然後讓它的日誌部分與此代碼:

NSDictionary *journalJSON = [json objectForKey:@"journals"]; 

到目前爲止的所有圖靈是如預期。但如果我NSLog(@"Journals: %@", journalJSON);它返回這個:

Journals: (
     { 
     journalDate = "0000-00-00"; 
     journalName = Test; 
     "users_userID" = 2; 
    } 
) 

那麼我如何去獲取該信息?我想存儲每個變量,如:self.journals.journalName = journalName; (我已經有這些變量命名和工作,只需要知道如何從Journals變量中獲取信息)

我從一個MYSQL數據庫通過PHP拉這個信息,所以實際上可能會超過一本日記....我想循環並保存每一個到課堂上。

現在我沒有一個循環真的和我這樣做......雖然這是不對的,但希望你得到了我想要完成的想法:

journal *thisJournal = [[journal alloc]init];  
      thisJournal.name = name;    
      thisJournal.date = @"12/25/1981"; 
      [self.journals addObject:thisJournal];    

我希望這一切都使感。我知道我接近正確的答案,因爲我可以看到數據。在這一點上不知道如何解析它。

THanks提前! 羅布

回答

1

你非常接近,試試這個:

journal *thisJournal = [[journal alloc]init]; 

for(NSDictionary *journal in journalJSON) { 
    thisJournal.name = [journal objectForKey: @"journalName"];  
    thisJournal.date = [journal objectForKey: @"journalDate"]; 
    [self.journals addObject:thisJournal]; 
    thisJournal = nil; 
} 
+0

nope,journalJSON不是NSDictionary,而是一個NSArray的字典,看看調試輸出 – Ahti 2012-03-15 03:26:22

+0

我愛你!工作完美。不知道我是如何忽略這一點的。非常感謝!! – user1066941 2012-03-15 04:07:23

+0

太棒了,如果它回答你的問題,請務必用複選標記「接受」答案!謝謝! – 2012-03-15 18:15:07

0

只需創建一個子類OB NSObject的命名期刊(按照慣例,所有ObjC類開始用大寫字母),並給它一些屬性(名稱,日期等),然後對反序列化的JSON(btw不是字典,而是NSDrayaries的NSArray)進行foreach,從當前字典中獲取值並用它們創建一個新的Journal對象,然後將其存儲在一些一種可變數組或者再次設置。

對不起,如果這聽起來很粗魯,但似乎你幾乎沒有ObjectiveC和Cocoa touch的任何經驗。我建議,你不要試圖自己學習,但要在iTunes U上觀看斯坦福CS193p課程才能開始。在看完第一對這些講座之後,你將會對你如何完成什麼有一個很好的基本理解,並且可以開始潛入先進的東西。