从 JSON 到 NSDictionary 的奇怪结果

Weird result from JSON to NSDictionary

我有以下代码从 JSON 得到 NSDictionary:

NSError *e = nil;
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"..."]]];
session.dict[@"ticketsAndAdminsList"] = [NSJSONSerialization
                                         JSONObjectWithData: data
                                         options: NSJSONReadingMutableContainers
                                         error: &e];

然后,我在别的地方有:

int activeTickets = session.dict[@"ticketsAndAdminsList"][@"tickets_pending"] ? (int)session.dict[@"ticketsAndAdminsList"][@"tickets_pending"] : 0;

如果我在该行正下方放置一个断点,activeTickets 的值为 55,即使该字典中的值为 0:

知道为什么吗?

谢谢!

您正在将 session.dict[@"ticketsAndAdminsList"][@"tickets_pending"] 转换为 int,但它不是 int 类型。它似乎是 NSNumber.

你可以这样做:

int activeTickets = [session.dict[@"ticketsAndAdminsList"][@"tickets_pending"] intValue];