我正在阅读一些json输出......只是一些整数。第一个NSLog完美地输出了东西。在这种情况下,有3个元素。我不明白如何访问特定元素。
NSMutableArray *json = (NSMutableArray*)[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"json: %@ \n",json);
int count = (int)[json objectAtIndex:0];
int count1 = (int)[json objectAtIndex:1];
int count2 = (int)[json objectAtIndex:2];
NSLog(@"count %i %i %i\n",count,count1,count2);
答案 0 :(得分:3)
NSArray
包含一个对象,不应该将其强制转换为int
,这不起作用。检查您的代码并确定NSJSONSerialization
的输出。如果它是一个整数,它通常是NSNumber
的实例,所以请尝试:
int count = [[json objectAtIndex:0] intValue];
答案 1 :(得分:3)
这些可能是NSNumbers。试试这个:
int count = [[json objectAtIndex:0] intValue];
int count1 = [[json objectAtIndex:1] intValue];
int count2 = [[json objectAtIndex:2] intValue];
NSLog(@"count %i %i %i\n",count,count1,count2);
答案 2 :(得分:2)
NSArray
和NSMutableArray
不能将int
和其他非id对象用作键或值,因此强制转换不起作用。最有可能的是NSNumber
类型的值,因此您需要在其上调用intValue
:
int count = [[json objectAtIndex:0] intValue];
int count1 = [[json objectAtIndex:1] intValue];
int count2 = [[json objectAtIndex:2] intValue];