2011-03-17 2 views
0

Я успешно десериализую канал JSON в словаре. Каждый элемент словаря представляет собой объект с тремя свойствами. Я бы тогда хотел передать содержимое в NSArray с помощьюПередача содержимого NSDictionary в NSArray

self.array = [JSONdict allvalues]; 

но помещает весь словарь в первый элемент массива. Где я иду не так?

Благодаря

+0

Любая консоль/вывод кода, пожалуйста? Как вы знаете, что «помещает весь словарь в первый элемент массива»? – occulus

+0

Что вы подразумеваете под "статьей словаря"? Записи словаря - это отображение от ключа к значению. Под «item» вы подразумеваете значение словаря? – occulus

+0

Да, извините, я имею в виду значения словаря. Я вошел содержание словаря, выходит так: – Fabbers

ответ

1

Я понял, что происходит не так. Я должен был подняться на один уровень в иерархии словарей и назначить сам словарь, а не значения в нем. Это очень хорошо работает:

self.array = [JSONdict valueForKey:@"members"]; 

Благодарим за комментарии и ответы. И извинения за неправильное использование термина - мой фон .Net

0

Проверьте NSDictionary экземпляр JSONdict.

потому что, если вы прочтете документацию, которую они четко изложили.

Returns a new array containing the dictionary’s values. 

- (NSArray *)allValues 
Return Value 
A new array containing the dictionary’s values, or an empty array if the dictionary has no entries. 
0

Я не уверен, как вам нужны ваши данные.

Но если вы хотите группировать свои значения в соответствии с атрибутами в разных массивах, вы можете использовать SBJSON Parser (или ваш существующий JSON Parser в этом случае) для синтаксического анализа или десериализации вашего JSON-канала, как мы можем видеть здесь в приведенном ниже коде :

NSDictionary *myDict = [JSONFeed JSONValue]; 
NSMutableArray *DispName = [myDict valueForKey:@"DisplayName"]; 
NSMutableArray *IDArray = [myDict valueForKey:@"ID"]; 
NSMutableArray *URLArray = [myDict valueForKey:@"URL"]; 

Надеюсь, это вам поможет.

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