从 NSDictionary 中检索数据,并在值周围加上引号?

Posted

技术标签:

【中文标题】从 NSDictionary 中检索数据,并在值周围加上引号?【英文标题】:retrieving data from NSDictionary with quotes already around the value? 【发布时间】:2013-10-12 17:19:39 【问题描述】:

我如何检索 NSDictionary 中键的值是值已经有引号包围它

代码:

for(NSDictionary *dict in jsonData)

NSString *firstName = [dict valueForKey:@"name_forenames"];
NSString *lastName = [dict valueForKey:@"name_surnames"];
NSLog (@"%@ %@", firstName, lastName);

在我的字典里是:

(

"name_forenames" = Jordan;
"name_surnames" = Newton;
, 
"name_forenames" = Jordan;
"name_surnames" = Newton;

)

因为它只是在我的 NSLog 中返回 null

【问题讨论】:

数据来自服务器或者你的项目中定义了json? 【参考方案1】:

字典键实际上并不包含引号,这只是 字典的description 方法显示包含特殊字符的字符串。

所以

NSString *firstName = [dict objectForKey:@"name_forenames"];

或新语法

NSString *firstName = dict[@"name_forenames"];

应该可以工作。

请注意,objectForKey: 是检索字典值的专用方法。 valueForKey: 用于键值编码技巧。

【讨论】:

成功了,谢谢!由于某种原因,第一种方法不起作用。新语法有效!【参考方案2】:

你在引号\"前面插入反斜杠。

NSString *firstName = [dict valueForKey:@"\"name_forenames\""];

【讨论】:

以上是关于从 NSDictionary 中检索数据,并在值周围加上引号?的主要内容,如果未能解决你的问题,请参考以下文章

JSON 解析:从 NSDictionary 检索数据并将其存储在数组中

从 NSDictionary 检索键/值对会导致数据不正确并崩溃

如何从目标 C 中的 NSDictionary 中检索字符串?

NSDictionary 和核心数据

从 NSDictionary 传递的 iOS 数据为 (null) - JSON 源

在 Python Pandas 中使用 cumsum 和 groupby 并在值为 0 时重置 cumsum