IOS: 如何获取数组中的字典值
IOS: how to get Dictionary value which is inside an array
我正在做一个项目,我有一个包含字典的数组
在给定的形式中,我必须在 "size_key".
的基础上获得 "Size_val" 的值
array : (
{
"as_per_size" = {
lowercatname = abcd;
sizes = (
{
"size_key" = "UP_CHEST";
"size_name" = "UP_CHEST";
"size_val" = 4;
typecat = 1;
},
{
"size_key" = LENGTH;
"size_name" = LENGTH;
"size_val" = 1;
typecat = 1;
},
{
"size_key" = DP;
"size_name" = DP;
"size_val" = 3;
typecat = 1;
},
{
"size_key" = "YOKE_LENGTH";
"size_name" = "YOKE_LENGTH";
"size_val" = 2;
typecat = 1;
},
{
"size_key" = KNEE;
"size_name" = KNEE;
"size_val" = 2;
typecat = 2;
},
{
"size_key" = THIGH;
"size_name" = THIGH;
"size_val" = 1;
typecat = 2;
},
{
"size_key" = CALF;
"size_name" = CALF;
"size_val" = 3;
typecat = 2;
}
);
uppercatname = CHOLI;
};
我只想在"size_key"的基础上得到"Size_val"的值。
我使用代码获取 uppercatname 的值。
upstring1 = [[[arrFilteredOrder objectAtIndex:0] objectForKey:@"as_per_size"] objectForKey:@"uppercatname"];
TypeLabel.text = upstring1;
请给我一些如何获得这个值的解决方案
请试试我下面的编码
NSDictionary *dict = (NSDictionary *)[[[arrFilteredOrder objectAtIndex:0] objectForKey:@"as_per_size"] objectForKey:@"sizes"];
NSArray *arr = [[[[array objectAtIndex:0]objectForKey:@"as_per_size"]objectForKey:@"sizes"]copy];
for(int i=0;i<[arr count];i++)
{
NSString *strSizekey = [NSString stringWithFormat:@"%@",[[arr objectAtIndex:i]objectForKey:@"size_key"]];
NSString *strSizeValue = [NSString stringWithFormat:@"%@",[[arr objectAtIndex:i]objectForKey:@"size_val"]];
}
显然你的尺寸值也是一个数组,所以你必须先得到这个数组,然后循环遍历尺寸数组以获得尺寸字典,并从尺寸字典中获得正确的 size_val size_key你有。
所以对于第一个条目和你的尺寸键:
NSArray* sizes = [[[arrFilteredOrder[0] objectForKey:@"as_per_size"] objectForKey;@"sizes];
foreach(NSDictionary* sizeDict in sizes {
NSString* sizeKey = sizeDict[@"size_key];
if([sizeKey isEqualToString:<your size key>])
{
NSString* sizeVal = sizeDict[@"size_val"];
// now do something with your value
...
}
}
你可以这样获取:
NSString *sizeValue = nil;
NSArray *sizes = [arrFilteredOrder.firstObject valueForKeyPath:@"as_per_size.sizes"];
for (NSDictionary *size in sizes) {
if ([size[@"size_key"] isEqualToString:sizeKey]) {
sizeValue = [size[@"size_val"] description]; //converting to string
}
}
我正在做一个项目,我有一个包含字典的数组 在给定的形式中,我必须在 "size_key".
的基础上获得 "Size_val" 的值array : (
{
"as_per_size" = {
lowercatname = abcd;
sizes = (
{
"size_key" = "UP_CHEST";
"size_name" = "UP_CHEST";
"size_val" = 4;
typecat = 1;
},
{
"size_key" = LENGTH;
"size_name" = LENGTH;
"size_val" = 1;
typecat = 1;
},
{
"size_key" = DP;
"size_name" = DP;
"size_val" = 3;
typecat = 1;
},
{
"size_key" = "YOKE_LENGTH";
"size_name" = "YOKE_LENGTH";
"size_val" = 2;
typecat = 1;
},
{
"size_key" = KNEE;
"size_name" = KNEE;
"size_val" = 2;
typecat = 2;
},
{
"size_key" = THIGH;
"size_name" = THIGH;
"size_val" = 1;
typecat = 2;
},
{
"size_key" = CALF;
"size_name" = CALF;
"size_val" = 3;
typecat = 2;
}
);
uppercatname = CHOLI;
};
我只想在"size_key"的基础上得到"Size_val"的值。 我使用代码获取 uppercatname 的值。
upstring1 = [[[arrFilteredOrder objectAtIndex:0] objectForKey:@"as_per_size"] objectForKey:@"uppercatname"];
TypeLabel.text = upstring1;
请给我一些如何获得这个值的解决方案
请试试我下面的编码
NSDictionary *dict = (NSDictionary *)[[[arrFilteredOrder objectAtIndex:0] objectForKey:@"as_per_size"] objectForKey:@"sizes"];
NSArray *arr = [[[[array objectAtIndex:0]objectForKey:@"as_per_size"]objectForKey:@"sizes"]copy];
for(int i=0;i<[arr count];i++)
{
NSString *strSizekey = [NSString stringWithFormat:@"%@",[[arr objectAtIndex:i]objectForKey:@"size_key"]];
NSString *strSizeValue = [NSString stringWithFormat:@"%@",[[arr objectAtIndex:i]objectForKey:@"size_val"]];
}
显然你的尺寸值也是一个数组,所以你必须先得到这个数组,然后循环遍历尺寸数组以获得尺寸字典,并从尺寸字典中获得正确的 size_val size_key你有。
所以对于第一个条目和你的尺寸键:
NSArray* sizes = [[[arrFilteredOrder[0] objectForKey:@"as_per_size"] objectForKey;@"sizes];
foreach(NSDictionary* sizeDict in sizes {
NSString* sizeKey = sizeDict[@"size_key];
if([sizeKey isEqualToString:<your size key>])
{
NSString* sizeVal = sizeDict[@"size_val"];
// now do something with your value
...
}
}
你可以这样获取:
NSString *sizeValue = nil;
NSArray *sizes = [arrFilteredOrder.firstObject valueForKeyPath:@"as_per_size.sizes"];
for (NSDictionary *size in sizes) {
if ([size[@"size_key"] isEqualToString:sizeKey]) {
sizeValue = [size[@"size_val"] description]; //converting to string
}
}