2012-08-17 118 views
1

此代码:转换字典成一个阵列

for (NSDictionary *object in JSONArray) { 
     NSMutableArray *birdtemp = [[NSMutableArray alloc] initWithObjects:object[@"case_name"], nil]; 
     [allparts addObject:birdtemp]; 
    } 

输出此日志:

log: (
     (
     "NZXT Phantom 410" 
    ), 
     (
     "Thermaltake MK+" 
    ) 
) 

我想知道我可以使用什么样的代码,以使该登录到一个数组,如:

log: (

    "NZXT Phantom 410", 
    "Thermaltake MK+" 
) 

Json阵列是:

log: (
     { 
     "case_color" = White; 
     "case_description" = ""; 
     "case_image" = "http://sitecom/get/parts/part_images/nzxtphantom410.jpeg"; 
     "case_name" = "NZXT Phantom 410"; 
     "case_price" = "99.99"; 
     "case_type" = ATX; 
     id = 1; 
    }, 
     { 
     "case_color" = Black; 
     "case_description" = ""; 
     "case_image" = "http://site.com/get/parts/part_images/thernaltake-mkplus.jpeg"; 
     "case_name" = "Thermaltake MK+"; 
     "case_price" = "84.99"; 
     "case_type" = ATX; 
     id = 2; 
    } 
) 
+0

什么是JSONArray可以如何打印它的未来 – sachin 2012-08-17 07:23:46

+0

[array addObject:dictionaryObject]; – Tendulkar 2012-08-17 07:24:04

回答

1

Troubleshooted并得到了这一点:

allparts = [[NSMutableArray alloc] init]; 
    NSString *birdtemp; 
    for (NSDictionary *object in JSONArray) { 
      birdtemp = object[@"case_name"]; 
     [allparts addObject:birdtemp]; 
    } 
0
NSMutableArray *birdtemp = [NSMutableArray ....]; 
    for (NSDictionary *object in JSONArray) { 
       [birdtemp addObject:object[@"case_name"]]; 
     } 
    [allparts addObject:birdtemp]; 
1

一个简单的方法来获得你正在寻找的结果是使用键 - 值编码(KVC):

NSArray *allparts = [JSONArray valueForKey:@"case_name"]; 

键值这种方式在阵列上使用的编码起初看起来有点反直觉,但它非常强大。

1
NSMutableArray *array = [[NSMutableArray alloc] init]; 
    for (NSDictionary *dict in JSONArray) { 

     [array addObject:[dict objectForKey:@"case_name"]]; 
    } 
    NSLog(@"Your Array: %@",array); 

我认为这会对您有所帮助。