Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
#1

NSDictionary и JSON - Objective-C

29.05.2014, 15:22. Просмотров 1376. Ответов 12
Метки нет (Все метки)

Всем привет!
Имеется Сериализованный JSON в таком формате
JSON
1
2
3
4
5
6
7
8
"total":669,
"restaurants":[
{
"id":1166,
"title":"«Cafe Emporio» / «Эмпорио»",
"introduction":"<p>В переводе с итальянского Emporio означает место пересечения и сосредоточения различных культурных и общественных сфер.</p>",
"image_thumb_125":".../content/restaurant/thumb_125/01/11/11185.jpg"
},
не получается добраться до ссылки на миниатюру
Сериализация:
Objective-C
1
2
3
NSError * error;
        
        NSDictionary * nmd = [NSJSONSerialization JSONObjectWithData:_requestDataBuffer options:0 error:&error];
пробовал разные методы NSDictionary.
Буду рад выслушать любые предложения
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2014, 15:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос NSDictionary и JSON (Objective-C):

Проверка наличия ключа в NSDictionary
Здравствуйте. Подскажите как проверить есть ли в NSDictionary нужный мне ключ?...

Передача NSDictionary из IOS в WCF
Добрый день! Возник вопрос. Есть приложение ios и wcf service ...

JSON
Всем добое время суток!!! Народ научить правильно и граммотно парсить JSON на...

парсинг JSON
Доброго времени суток, я знаю как распарсить ...

PHP и JSON
Здравствуйте. Пишу приложение для iPhone ( использую AFNetworking для...

Парсинг JSON в XCode
Доброго времени суток! Гуглёжка сабжа дала ответы лишь на старые (4-5) версии...

12
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
29.05.2014, 15:29 #2
Objective-C
1
2
3
4
5
NSArray *restaurants = nmd[@"restaurants"];
NSDictionary *firstRestaurant = [restaurants firstObject];
NSString *imageThumbKey = @"image_thumb_125";
NSString *firstRestaurantImageUrlString = firstRestaurant[imageThumbKey];
NSArray *allImageUrlStrings = [restaurants valueForKey:imageThumbKey];
1
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
29.05.2014, 16:34  [ТС] #3
No visible @interface for 'NSArray' declares the selector 'firstObject'
В гугле пишут что из - за версии SDK. Как быть? Спасибо
0
zulkis
684 / 611 / 43
Регистрация: 13.01.2011
Сообщений: 1,724
29.05.2014, 17:38 #4
Objective-C
1
2
3
4
NSDictionary *firstRestaurant = nil;
if ([restaurants count] > 0) {
    firstRestaurant = restaurants[0];
}
1
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
30.05.2014, 13:12 #5
"total":669,
"restaurants":[
{
"id":1166,
"title":"«Cafe Emporio» / «Эмпорио»",
"introduction":"<p>В переводе с итальянского Emporio означает место пересечения и сосредоточения различных культурных и общественных сфер.</p>",
"image_thumb_125":".../content/restaurant/thumb_125/01/11/11185.jpg"
},
Objective-C
1
2
3
NSDictionary * nmd = [NSJSONSerialization JSONObjectWithData:_requestDataBuffer options:0 error:&error];
 
NSLog(@"%@", nmd[@"restaurants"][0][@"image_thumb_125"] );
0
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
02.06.2014, 13:40  [ТС] #6
А как быть в ситуации когда скажем в ключе image_thumb_125 есть подключи? как бы подкатегории.
0
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
02.06.2014, 14:31 #7
А как быть в ситуации когда скажем в ключе image_thumb_125 есть подключи? как бы подкатегории.
nmd[@"restaurants"][0][@"image_thumb_125"][@"category1"][@"category2"]
1
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
02.06.2014, 14:35  [ТС] #8
А можно ли получить имена подкатегорий программно?
0
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
02.06.2014, 14:39 #9
А можно ли получить имена подкатегорий программно?
NSDictionary allValues

NSDictionary allKeys
1
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
02.06.2014, 19:54  [ТС] #10
добрый вечер, целый день мучаюсь, ни как ни получается вытащить эти "подключи"
Objective-C
1
2
3
allprice = [restaurants valueForKey:@"pricerange"];
    NSString *itemprice = [allprice objectAtIndex:indexPath.row];
    cell.lblprice.text = itemprice;
так я вытаскиваю обычно, а допустим в pricerange есть еще ключи, соответственно получаю ошибку, а нужно вытащить названия ключей и по очереди записать данные в label, как сделать массив с названиями этих ключей?
Спасибо
0
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
02.06.2014, 21:36 #11
а нужно вытащить названия ключей и по очереди записать данные в label
Objective-C
1
2
3
4
NSDictionary * JSONDictionary = nmd[@"restaurants"][0];
for (NSString * key in JSONDictionary.allKeys) {
   NSLog(@"key is %@ value is %@", key, JSONDictionary[key]);
}
0
xBios
1 / 1 / 1
Регистрация: 04.03.2013
Сообщений: 125
02.06.2014, 22:56  [ТС] #12
Цитата Сообщение от noname_club Посмотреть сообщение
Код Objective-C
NSDictionary * JSONDictionary = nmd[@"restaurants"][0];
for (NSString * key in JSONDictionary.allKeys) {
* *NSLog(@"key is %@ value is %@", key, JSONDictionary[key]);
}
Немного не то, у ключа restaurants есть ключ cuisines в котором лежат мои данные
на прямую в cuisines он не переходит

у меня получается вот так
JSON
1
2
3
4
5
6
7
8
9
Restaurant» / «Ле Ресторан»
2014-06-02 22:56:53.070 1[2457:11303] | 629
2014-06-02 22:56:53.070 1[2457:11303] | content/restaurant/thumb_125/00/62/6202.jpg
2014-06-02 22:56:53.070 1[2457:11303] | 2000-3000 руб.
2014-06-02 22:56:53.070 1[2457:11303] | г. Москва, ул. 2-я Звенигородская, д. 13, стр. 1
2014-06-02 22:56:53.071 1[2457:11303] | {
    European = "\U0415\U0432\U0440\U043e\U043f\U0435\U0439\U0441\U043a\U0430\U044f";
    french = "\U0424\U0440\U0430\U043d\U0446\U0443\U0437\U0441\U043a\U0430\U044f";
}
а мне нужно взять European, french
и при чем они для каждого ресторана разные
0
noname_club
104 / 95 / 12
Регистрация: 01.05.2013
Сообщений: 600
02.06.2014, 23:06 #13
все что нужно я вам уже подсказал. Дело за вами.
1
02.06.2014, 23:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 23:06
Привет! Вот еще темы с решениями:

Посоветуйте JSON framework
ребята, посоветуйте пожалуйста хороший JSON framework? видел json-framework,...

Получение и разбор JSON
Нужно срочно написать , а я object c очень плохо знаю ( мне говорили что он...

Парсер JSON (возникает ошибка)
Добрый день, делаю парсер постов из вордпресс в приложение ios. Использую JSON....

JSON парсинг из базы в таблицу
Здравствуйте. Мне надо сделать JSON парсинг данных из базы в таблицу. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru