从 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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章