我正在调用一个以JSON
格式返回一些高级数据的API。然后将其处理为NSDictionary
,如此;
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:JSONData options:kNilOptions error:&error];
当我记录这个时,我可以得到一个非常复杂的结果:
{
one = {
oneone = 12345;
onetwo = "Hello";
onethree = "How Are You";
};
two = 42;
three = {
threeone = {
threeoneone = "Name";
threeonetwo = {
threeonetwoone = "100";
threeonetwotwo = "26";
};
etc etc etc
现在我通过调用[results objectForKey:@"three"]
获取'three'的内容但是如何获得'threeonetwoone'的值?
我尝试了一些但无济于事。
答案 0 :(得分:5)
使用类似的东西......请在编译器中查看
由于我不确定,你是否提到了正确的词典,所有的键都应该是正确的。
[results valueForKeyPath:@"three.threeone.threeonetwo.threeonetwoone"];
答案 1 :(得分:2)
随着Objective-C语法的最新更改,您可以这样做:
results[@"three"][@"threeone"][@"threeonetwo"][@"threeonetwoone"];
答案 2 :(得分:1)
在你的情况下:
NSString* threeoneone= dict[@"three"][@"threeone"][@"threeonetoone"];