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);
    

objectForKeyvalueForKey 我都试过了,但似乎都没有找到我想要的东西。

如果我执行[NSString stringWithFormat:@"%@",[patch valueForKey:@"value"]],我会得到一个值 20 作为字符串,但 intValueintegerValue 似乎并不能满足我的需求。

现在,日志显示: 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 解析

如何在 Objective C 中解析 JSON 格式

Objective c- 获取 json 数组中的子 json 字符串

如何在 Objective-C iOS 中解析 JSON

在 IOS(Objective-C)中有效地解析 JSON 到 Realm DB