Ios 是否将字符串用作[JSON valueForKeyPath]选择器的一部分?
我正在解析JSON,它看起来像: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
{"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];