Получить объекты из NSDictionary - PullRequest
0 голосов
/ 07 октября 2011

Я получаю из URL этот результат:

NSString *result = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

это выглядит так:

  [{"modele":"Audi TT Coup\u00e9 2.0 TFSI","modele_annee":null,"annee":"2007","cilindre":"4 cyl","boite":"BVM","transmision":"Traction","carburant":"ES"},
{"modele":"Audi TT Coup\u00e9 2.0 TFSI","modele_annee":null,"annee":"2007","cilindre":"4 cyl","boite":"BVM","transmision":"Traction","carburant":"ES"}]

Таким образом, он содержит 2 словаря.Мне нужно взять объекты из всех ключей из этого результата.Как я могу это сделать?

Я пробовал это: NSDictionary vehiculesPossedeDictionary=(NSDictionary *)result;

, а затем это: [vehiculesPossedeDictinary objectForKey:@"modele"];, но это не работает.

Пожалуйста, помогите мне ...Заранее спасибо

Ответы [ 4 ]

3 голосов
/ 07 октября 2011

У вас есть строка JSON, которая описывает «массив», содержащий два «объекта». Это необходимо преобразовать в объекты Objective-C с помощью анализатора JSON, а при преобразовании будет NSArray, содержащий два NSDictionarys.

1 голос
/ 07 октября 2011

Если у вас есть массив словаря, просто назначьте объекты в массиве словарю, например

NSDictionary *dictionary = [array objectAtIndes:0];

, а затем используйте этот словарь для получения значений.

1 голос
/ 07 октября 2011

@ Мэттью Джиллингем предлагает JSONKit. Я думаю, что это нормально, но я всегда использовал его конкурента json-framework . Никакой реальной причины, я просто нашел это сначала и изучил это сначала. Я думаю, что его интерфейс несколько проще, но с JSONKit многие тоже справляются.

Использование json-framework:

require JSON.h

... а затем

NSString *myJsonString = @"[{'whatever': 'this contains'}, {'whatever', 'more content'}]";

NSArray *data = [myJsonString JSONValue];

foreach (NSDictionary *item in data) {
    NSString *val = [item objectForKey:@"whatever"];
    //val will contain "this contains" on the first time through
    //this loop, then "more content" the second time.
}
1 голос
/ 07 октября 2011

Вы не сможете получить свой словарь напрямую из строки JSON. Вам придется сначала запустить его через анализатор JSON.

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

Существует несколько различных анализаторов JSON, включая TouchJSON, YAJL и т. Д., Которые вы можете найти и сравнить. Лично я использую JSONKit .

...