如何在 Objective-C 中访问键的单个 JSON 值

Posted

技术标签:

【中文标题】如何在 Objective-C 中访问键的单个 JSON 值【英文标题】:how to access single JSON value for key in Objective-C 【发布时间】:2014-06-05 15:32:03 【问题描述】:

我是 Obj-C 的新手,由于数组、字典和语法的困难,我可以通过某种方式获得 JSON 请求的输出。如果有人能帮我上路,那就太好了。

    NSLog(@"JSON Feed: %@", self.classified);
    NSDictionary *test = self.classified;
    NSLog(@"andy %@", [test objectForKey:@"text"]);

这会引发异常:

JSON 提要:( text = "测试文本"; ) 2014-06-05 17:25:28.170 Nerdfeed[2321:4107]-[__NSCFArray objectForKey:]:无法识别的选择器发送到实例 0x10b988da0 2014-06-05 17:25:28.173 Nerdfeed[2321:4107] * 由于未捕获的异常而终止应用程序

我现在花了几个小时试图找到解决方案,但无法解决。非常感谢您的帮助。

【问题讨论】:

你能发布一个 JSON 样本吗?还有你用什么代码来读取和解析到属性self.classified 先去json.org学习一下JSON语法。然后了解数组/字典的 NSLog 看起来几乎类似于匹配的 JSON,除了在数组周围使用 () 而不是 [] 以及其他一些小细节。您的“JSON Feed”是单个元素的数组,该元素是包含单个条目“文本”的字典。 【参考方案1】:

self.classified 似乎是带有单个项目的 NSArray(而不是 NSDictionary)。试试[[self.classified firstObject] objectForKey:@"text"]

【讨论】:

可能是这样,但语法不正确。 XCode 告诉我“NSDictionary”没有可见的@interface 声明选择器“firstObject” 好的!明白了,我仍然将变量声明为字典。您的帮助和 Hot Licks 的评论帮助解决了这个问题。谢谢!

以上是关于如何在 Objective-C 中访问键的单个 JSON 值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 中打印单个数组元素?

如何从 JWTAuth JSON 数据中访问单个值

如何将对象数组转换为在打字稿中具有动态键的单个对象

IOS:如何从字典中获取单个键的值

如何使用单个参数从 Javascript 调用 Objective-C 方法并在 Xcode 中处理它

如何在objective-c中使UIImage为NULL