从 NSDictionary 获取 JSON 值并放入 NSString 不起作用

Posted

技术标签:

【中文标题】从 NSDictionary 获取 JSON 值并放入 NSString 不起作用【英文标题】:Get JSON value from NSDictionary and place in NSString not working 【发布时间】:2014-02-24 14:59:21 【问题描述】:

在我之前的应用程序中,我使用以下代码将 NSDictionary 变量中的 JSON 提取到字符串中:

NSString *task_id = [jsonString objectForKey:@"key"];

它运行得很好,但由于某种原因它不再在我的新应用中运行了?相反,我得到了这个错误:

-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x14d7bda0

有谁知道为什么这可能不起作用?

彼得

【问题讨论】:

看起来你的 jsonString 确实是一个字符串而不是字典。 1) 在解码之前对 JSON 进行 NSLog 记录。 (执行[[NSString alloc] initWithData:dataObjwect encoding:NSUTF8Encoding] 以使 NSData 可打印。) 2) NSLog 解码结果。观察到一个字典被包围,一个数组被()包围。 【参考方案1】:

确保jsonString为NSDictionary

if([jsonString isKindOfClass:[NSDictionary class]]) 
    NSString *task_id = [jsonString objectForKey:@"key"];
 else 
    // is not a dictionary
    NSLog(@"%@", jsonString);

【讨论】:

这不是字典,我会回到绘图板上找出原因。感谢您的帮助:) 是的,画板是最好的选择:) 更新:if([jsonString isKindOfClass:[NSDictionary Class]]) 不起作用,但是将代码从“类”更改为“类”效果很好:)

以上是关于从 NSDictionary 获取 JSON 值并放入 NSString 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何从 NSDictionary 获取整数值?

从 JSON 中获取值并传递给另一个视图

ios - 从 NSDictionary 获取值

如何在 NSDictionary 中访问本地 JSON 文件响应以在 UITableView 中显示?

从 NSDictionary 中按键获取具有特定值的对象

从 JSON 获取的 NSData 的奇怪响应