2011-06-08 85 views
1

我正在使用json文件,並且已將我的響應保存在NSArray中。如何在從json文件提取值後訪問NSArray

NSArray *result = [response JSONValue]; 
NSLog(@"value = %@", result); 

當我打印我的陣列,在控制檯我得到這樣的:

(
    { 
    user =   { 
     "created_at" = "2011-06-07T16:20:16Z"; 
     id = 1; 
     name = "john"; 
     "updated_at" = "2011-06-07T16:20:16Z"; 
    }; 
}, 
    { 
    user =   { 
     "created_at" = "2011-06-08T00:03:54Z"; 
     id = 25; 
     name = "david"; 
     "updated_at" = "2011-06-08T00:03:54Z"; 
    }; 
} 

我的問題是 - 如何可以訪問值 「名」 和將值(john,david)保存在另一個數組中?

謝謝你提前。

回答

1

使用Key-Value Coding

NSArray *names = [result valueForKeyPath:@"user.name"]; 
0

嗨你個人的數組元素存儲在NSDictionary中,然後訪問這些鍵/對值。

0

對於這一點,你必須從result Array訪問name和插入mutableArray(arr) 下面的代碼片段可能對你有幫助:

 NSMutableArray *arr = [[NSMutableArray alloc]init]; 
    for(int i = 0; i<[result count];i++) 
    {                                    
    NSDictionary *dict = [result objectAtIndex:i]; 
    [arr addObject:[dict objectForKey:@"name"]]; 
} 
+0

'NSInvalidArgumentException' 的,原因:'*** - [NSMutableArray insertObject:atIndex:]:試圖在0'處插入零對象 – davideagostini 2011-06-08 10:15:04

0
NSArray *result = [response JSONValue]; 
NSMutableArray *nameArr = [[NSMutableArray alloc]init]; 
NSEnumerator* enumerator=[result objectEnumerator]; 
NSDictionary* dictionary; 
while (dictionary=[enumerator nextObject]) 
{ 
    [nameArr addObject:[dictionary objectForKey:@"name"]]; 
}