Как получить информацию из словаря, полученного из JSON - Objective-C / IOS / xCode - PullRequest
0 голосов
/ 15 марта 2012

В настоящее время я получаю словарь с информацией о json, который я называю json.

 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];            

Надеюсь, все это имеет смысл. Я знаю, что близок к правильному ответу, потому что я могу видеть данные. Просто не уверен, как разобрать это на этом этапе.

Спасибо заранее! Rob

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Вы очень близки, попробуйте это:

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 голосов
/ 15 марта 2012

Просто создайте подкласс NSObject с именем Journal (по договоренности, все классы ObjC начинаются с заглавной буквы) и присвойте ему некоторые свойства (имя, дату и т. Д.), А затем выполните foreach для десериализованного JSON (который, между прочим) это не словарь, а NSArray of NSDictionaries), извлеките значения из текущего словаря и создайте с ними новый объект Journal, затем сохраните его в каком-либо изменяемом массиве или установите снова.

Прошу прощения, если это звучит грубо, но, похоже, у вас почти нет опыта работы с ObjectiveC и Cocoa touch. Я бы посоветовал вам не пытаться изучать все это самостоятельно, а посмотреть курсы Stanford CS193p на iTunes U, чтобы начать. После просмотра первой пары этих лекций у вас будет хорошее общее представление о том, как вы чего-то достигнете, и сможете начать углубляться в сложные вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...