Ios 是否将字符串用作[JSON valueForKeyPath]选择器的一部分?

Ios 是否将字符串用作[JSON valueForKeyPath]选择器的一部分?,ios,objective-c,json,Ios,Objective C,Json,我正在解析JSON,它看起来像: {"data":{"items":{"daily":{"2013-07-31":16}}}} 我已经建立了一个日期字符串。e、 g: NSDateFormatter *format = [[NSDateFormatter alloc] init]; [format setDateFormat:@"Y-MM-d"]; NSDate *now = [[NSDate alloc] init]; NSString *dateString = [format stri

我正在解析JSON,它看起来像:

{"data":{"items":{"daily":{"2013-07-31":16}}}}
我已经建立了一个日期字符串。e、 g:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"Y-MM-d"];

NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
如何使用日期字符串作为valueForKeyPath选择器的一部分

[JSON valueForKeyPath:@"data.items.daily"]?

您可以使用
+stringWithFormat:
方法创建密钥路径字符串,然后使用它。您将有如下内容(假设JSON是您已经从JSON字符串解析的对象):


您可以使用字符串格式:

[JSON valueForKeyPath:[NSString stringWithFormat:@"data.items.daily.%@", dateString]];

我认为这个
stringWithFormat:
方法会很有帮助:

[NSString stringWithFormat:@"data.items.daily.%@", dateString];

仅使用单个字符串说明符(
@“%@”
)的
stringWithFormat
)是完全无用的,并且需要花费不必要的解析成本。想象一下,我对你说“告诉我如果我让你打招呼你会说什么”和“打招呼”。在这种情况下直接使用
dateString
。@Cyrille您是对的。我只是建议使用“stringWithFormat:”方法。但是,我将编辑我的答案以进行澄清。为什么您需要单个密钥路径<代码>[[JSON valueForKeyPath:@“data.items.daily”]objectForKey:dateString]对我来说似乎是最简单的方法。
[NSString stringWithFormat:@"data.items.daily.%@", dateString];