我希望在没有For Loop使用的情况下获得特定的关键值

时间:2013-03-23 10:19:28

标签: iphone objective-c nsdictionary

"Setting":  "[{"WIDTH":"150",
      "HEIGHT":"140", 
      "IS_REQUIRED":"YES",
      "TOP_MARGIN":"30" , 
      "LEFT_MARGIN":"80",
      "LINEBREAK":"NO",
      "DEFAULT":"NULL"
    }]"

4 个答案:

答案 0 :(得分:2)

你可以得到它:

 NSString *string=yourDict[@"WIDTH"];

或者,

NSString *string=[yourDict objectForKey:@"WIDTH"];

检查NSDictionary Documentation和新Objective-C literals

请请开始学习Objective-C,可能来自Apple文档。


编辑:

当您更改问题并添加“设置:”时。

现在您需要使用:

NSString *string=yourDict[@"Setting"][@"WIDTH"];

编辑1:

我认为你有一系列的对象。每个对象都包含WIDTHLINEBREAK等的集合。

NSString *string=yourDict[@"Setting"][0][@"WIDTH"];

答案 1 :(得分:1)

试一试:

    NSArray *itemObjects = (NSArray *) [resultDict objectForKey:@"Setting"];
    for (int i=0;i<[itemObjects count];i++) {
            NSDictionary *rssDict=[itemObjects objectAtIndex:i];
            NSString *str1=[rssDict objectForKey:@"WIDTH"];
            NSString *str2=[rssDict objectForKey:@"HEIGHT"];
            NSString *str3=[rssDict objectForKey:@"IS_REQUIRED"];
            NSString *str4=[rssDict objectForKey:@"LEFT_MARGIN"];

     }

答案 2 :(得分:1)

您的mtmDict[@"field_setting"]不是数组或字典,而是带有JSON数据的 字符串 。您可以使用NSJSONSerialization将该字符串转换为数组并访问值:

NSString *jsonString = mtmDict[@"field_setting"];
NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:NULL];

NSLog(@"%@", jsonArray[0][@"WIDTH"]);

答案 3 :(得分:0)

你也可以通过

获得它
NSLog(@"%@",[[youDic objectForKey:@"Setting"] objectForKey:@"WIDTH"]);

 NSLog(@"%@",[[[youDic objectForKey:@"Setting"] objectAtIndex:0] objectForKey:@"WIDTH"]);

尝试一下,可能会对你有所帮助。