Я предполагаю, что feed3
- это объект, возвращаемый анализатором JSON после анализа данных JSON, которые вы указали в другом вопросе.В этом случае:
* the top level object is an array
* every element in the array is an object/dictionary representing news
* this object/dictionary contains the following keys:
* application (object/dictionary with two keys: id, name)
* id (number)
* name (string)
* created_time (string)
* from (object/dictionary with two keys: id, name)
* id (number)
* name (string)
* icon (string)
* id (string)
* likes (object/dictionary with two keys: count, data)
* count (number)
* data (array)
* every element in the array is an object/dictionary
* this object/dictionary has two keys (id, name)
* id (number)
* name (string)
* link (string)
* name (string)
* picture (string)
* properties (array of objects/dictionaries)
* type (string)
* updated_time (string)
При анализе данных JSON жизненно важно понять, как организованы данные.Я предлагаю вам всегда делать вышеописанное всякий раз, когда вам нужно проанализировать JSON.
Так как вы заинтересованы в 'type', вам нужно следовать по этому пути:
- пройти верхний уровеньмассив новостей
- каждый элемент в массиве является объектом / словарем
- этот объект / словарь имеет ключ с именем 'type'
Следующий код должен помочь:
for (NSDictionary *news in feed3) {
NSString *type = [news objectForKey:@"type"];
if ([type isEqualToString:@"status"]) {
…
}
else if ([type isEqualToString:@"photo"]) {
…
}
else if ([type isEqualToString:@"link"]) {
…
}
else if ([type isEqualToString:@"video"]) {
…
}
}
Обратите внимание, что, как правило, вы должны использовать -objectForKey:
вместо -valueForKey:
:
-objectForKey:
- это метод, объявленный в NSDictionary
, и он используется для получения объекта, хранящегося в словаре, по соответствующему ключу. -valueForKey:
- это метод KVC и служит для другой цели.В частности, он может возвращать массив, когда вы его не ожидаете!