2012-03-15 3 views
0

В настоящее время я получаю словарь с информацией json, которую я называю json.Как получить информацию из словаря, который я получил от JSON - Objective-C/IOS/xCode

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

          options:kNilOptions 
          error:&error]; 

Я тогда получаю часть Journals его с этим кодом:

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

Все до сих пор Тьюринг, как ожидалось. Но если я NSLog(@"Journals: %@", journalJSON); возвращает это:

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

Так как я могу идти о получении этой информации? Я хочу сохранить каждый в переменной, такой как: self.journals.journalName = journalName; (У меня уже есть эти переменные, названные и работающие. Просто нужно знать, как получить информацию из переменной Журналов в нее)

Я вынимаю эту информацию из базы данных MYSQL через php, поэтому на самом деле может быть больше, чем один журнал .... и я хотел бы пройти и сохранить каждый в классе.

Прямо сейчас у меня нет петли на самом деле, и я делаю это ... хотя это не правильно, но, надеюсь, вы получите представление о том, что я хочу сделать:

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

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

Заранее благодарен! Роб

ответ

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 dicts, посмотрите на вывод отладки – Ahti

+0

Я ЛЮБЛЮ ВАС! Работал отлично. Не знаю, как я это забыл. Большое спасибо!! – user1066941

+0

Удивительно, если он ответил на ваш вопрос, пожалуйста, не забудьте «принять» ответ с галочкой! Благодаря! –

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^