1

我正在阅读一些 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);
4

3 回答 3

3

NSArray包含一个对象,您不应该将其转换为int,这将不起作用。检查您的代码并确定NSJSONSerialization. 如果它是一个整数,它通常是 的一个实例NSNumber,所以尝试:

int count = [[json objectAtIndex:0] intValue];
于 2012-04-07T23:54:27.323 回答
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);
于 2012-04-07T23:54:49.477 回答
2

NSArray并且NSMutableArray不能使用ints 和其他非 id 对象作为键或值,因此强制转换不起作用。这些值很可能是 type NSNumber,因此您需要调用intValue它们:

int count = [[json objectAtIndex:0] intValue];
int count1 = [[json objectAtIndex:1] intValue];
int count2 = [[json objectAtIndex:2] intValue];
于 2012-04-07T23:54:38.103 回答