【问题标题】:retrieving data from NSDictionary with quotes already around the value?从 NSDictionary 中检索数据,并在值周围加上引号?
【发布时间】: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?

标签: ios objective-c nsstring nsdictionary


【解决方案1】:

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

所以

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

或新语法

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

应该可以工作。

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

【讨论】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2011-10-02
    • 2018-06-21
    相关资源
    最近更新 更多