如何在 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 值的主要内容,如果未能解决你的问题,请参考以下文章