簡體   English   中英

iOS:如何獲取數組內的Dictionary值

[英]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值也是一個數組,因此您必須先獲取此數組,然后循環通過sizes數組以獲取size字典,然后從size字典中獲取具有您的size_key的正確size_val。

因此,對於第一個條目和您的尺寸鍵

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
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM