0

У меня JSON из API Google Speech. Я сделал это массив с помощью NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: jsonResponse options: NSJSONReadingMutableContainers error: &e];Доступ к многомерным массивам в объекте-c

Теперь мой массив выглядит следующим образом (сбрасывали с помощью NSLog(@"%@",jsonArray)):

{ 
    result =  (
       { 
      alternative =    (
           { 
        confidence = "0.88664246"; 
        transcript = test; 
       }, 
           { 
        transcript = tests; 
       }, 
           { 
        transcript = teste; 
       }, 
           { 
        transcript = pest; 
       }, 
           { 
        transcript = Test; 
       } 
      ); 
      final = 1; 
     } 
    ); 
    "result_index" = 0; 
} 

Мне нужно получить доступ к первому объекту, или эта часть:

transcript = "test"; 

Как я могу получить к нему доступ?

ответ

2

Вы сказали бы:

NSLog(@"%@", jsonArray[@"result"][0][@"alternative"][0][@"transcript"]); 

Пожалуйста, обратите внимание, что корневой объект представляет собой словарь, а не массив.

У меня возникло ощущение, что вам понадобится более общий способ доступа к нему, поэтому подумайте о создании локальных объектов (возможно, объектов CoreData), которые представляют объекты в схеме JSON, поэтому вы можете создавать их и нормально обращаться к ним путем перемещения массивов и словарей.

+0

Благодарим вас за ответ! Однако это не сработает, он ошибся со следующей ошибкой: «Ожидаемый метод для чтения словарного элемента, который не найден на объекте типа« NSArray * », – Spotlight

+2

@ awesomebing1, это потому, что, как уже упоминал jeffamaphone,' jsonArray' не является массив. Это словарь. Измените его тип на 'NSDictionary *'. – FreeNickname

+0

@FreeNickname Хорошо! Я попробую это. – Spotlight

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