iOS/Objective C 解析 JSON 获取 int

标签 ios objective-c json

我一直在尝试解析这个 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 似乎无法满足我的需求。

现在,日志显示: 数量:-5764607523034234845

有什么地方出错了吗?我无法控制 JSON,或者我只会修复对象周围的外部数组。

最佳答案

反序列化时,JSON 字典中的整数将映射到 NSNumber 的实例,它有多种方法来检索标量值。

要从 JSON 中获取 NSInteger,您需要执行以下操作:

NSNumber *number = [dict objectForKey:@"value"];
NSInteger quantity = [number integerValue];

关于iOS/Objective C 解析 JSON 获取 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42585490/

相关文章:

ios - UIViewController setView nil 自动从 superview 中移除

android - 如何让 SNS 在 Android 中工作?

IOS UIImageView 显示为黑色背景

php 和 mysql 查询返回问题

c# - C#.net 中的 JSON Twitter 列表

ios - Swift:使用评估Javascript

ios - 如何销售带许可证的框架以及如何限制有限用户

ios - 架构 i386 : "_OBJC_CLASS_$_ZipException", 的 undefined symbol 引用自:错误

objective-c - "Reference to ' ' is ambiguous"将纯 C header 包含到 Obj-C iOS 项目时

json - Darkcoin nomp 矿池支付处理错误且缺少 ui