从 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];
我有以下代码从 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];