Возвращенный объект из objectForKey:@"shops"
на самом деле является экземпляром NSDictionary
, а не NSArray
, поскольку ключи на самом деле являются строками, а не числовыми значениями.
Для ваших целей вы можете просто позвонить -allValues
на полученном NSDictionary
.
NSDictionary *shops = [[shopsString JSONValue] objectForKey:@"shops"];
for(id obj in [shops allValues]) {
//do stuff with obj...
}
РЕДАКТИРОВАТЬ : Если вам нужно упорядочить значения, вы можете сделать что-то вроде следующего:
Сначала измените входящий JSON на такую структуру:
{
"shops":[
{"key":"1", "id":"A","name":"Nike"},
{"key":"5","id":"G","name":"Apple"},
{"key":"4", "id":"I","name":"Target"}
]
}
Тогда вы можете упорядочить объекты в массиве.
NSArray *shops = [[shopsString JSONValue] objectForKey:@"shops"];
for(NSDictionary *shop in shops) {
NSString *key = [shop objectForKey:@"key"];
//...
}