iOS / Objective C解析JSON获取int
Posted
技术标签:
【中文标题】iOS / Objective C解析JSON获取int【英文标题】:iOS / Objective C Parse JSON get int 【发布时间】:2017-03-03 17:54:28 【问题描述】:我一直在尝试解析这个 json,但没有成功:
["op":"replace","path":"/pending_coins","value":20]
我想要 20 的值,所以我可以这样做
int quantity = jsonValue; //20
这是我目前拥有的:
NSArray *patch =[NSJSONSerialization JSONObjectWithData:anEvent.data options:NSJSONReadingMutableContainers error:&e];
NSDictionary *dict = patch[0];
NSLog(@"patch: %@", dict);
NSInteger quantity = (NSInteger)[dict valueForKey:@"value"];
NSLog(@"quantity: %ld",(long)quantity);
if (quantity > 0)
NSLog(@"You earned %ld coins!",(long)quantity);
objectForKey
和 valueForKey
我都试过了,但似乎都没有找到我想要的东西。
如果我执行[NSString stringWithFormat:@"%@",[patch valueForKey:@"value"]]
,我会得到一个值 20 作为字符串,但 intValue
和 integerValue
似乎并不能满足我的需求。
现在,日志显示:
quantity: -5764607523034234845
任何想法我哪里出错了?我无法控制 JSON,或者我只是在对象周围添加外部数组。
【问题讨论】:
[[dict objectForKey:@"value"] integerValue]
应该可以工作。
哇!你是救生员。我知道我很接近。想要将其作为 +1 的答案吗?
【参考方案1】:
反序列化时,JSON 字典中的整数将映射到 NSNumber
的实例,该实例具有各种检索标量值的方法。
要从 JSON 中获取 NSInteger
,您可以:
NSNumber *number = [dict objectForKey:@"value"];
NSInteger quantity = [number integerValue];
【讨论】:
以上是关于iOS / Objective C解析JSON获取int的主要内容,如果未能解决你的问题,请参考以下文章
如何解析 JSON 响应并在 Objective C 中使用它?
来自 NSMutableArray 的 Objective C JSON 解析