2013-07-04 77 views
1

我有如下的json数据。如何将JSON数据添加到NSArray

[ 
    {"id":"2","imagePath":"image002.jpg","enDesc":"Nice Image 2"}, 
    {"id":"1","imagePath":"image001.jpg","enDesc":"Nice Image 1"} 
] 

我将此分配给名为NSArray *news的变量。

现在我有三个不同的数组,如下所示。

NSArray *idArray; 
NSArray *pathArray; 
NSArray *descArray; 

我想给这些数组分配数据,这样最后我应该如下。

NSArray *idArray = @["2","1"]; 
NSArray *pathArray = @["image002.jpg","image001.jpg"]; 
NSArray *descArray = @["Nice Image 2","Nice Image 1"]; 

任何想法如何做到这一点?


在下面的答案帮助下,这就是我所做的。

pathArray = [[NSArray alloc] initWithArray:[news valueForKey:@"imagePath"]]; 

由于某些原因,我不想使用NSMutableArray。

+1

坦率地说,这是通常不是一个好主意来拆分这样的JSON结构。更容易和更少的错误倾向于简单地携带原始字典,并直接访问它们在需要个人价值的地方。例如: –

回答

2

您应该使用JSONKit或TouchJSON将您的JSON数据转换为Dictionary。 可能比你做到这一点:

NSArray *idArray = [dictionary valueForKeyPath:@"id"]; // KVO 
+0

:NSDictionary * dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:response error:&error]; – Anton

+1

你不需要外部库。基金会有'NSJSONSerialization'。 – 2013-07-04 13:12:05

+0

它适用于iOS 5.0或更高版本。 – Anton

2

使用此

​​

,那么你可以提取你从那里需要的所有信息,你有的NSArray包含的NSDictionary,在那里你可以去并使用objectForKey:获取所有您需要的信息。

1

将json数据加载到NSDictionary中,您可以将其称为“news”。然后检索作为

NSArray *idArray = [news valueForKeyPath:@"id"]; 
NSArray *pathArray = [news valueForKeyPath:@"imagePath"]; 
NSArray *descArray = [news valueForKeyPath:@"enDesc"]; 
-1

是上述所有ANS是正确的,我只是整合所有的人在一起是伊斯利使用你:

NSArray *serverResponseArray = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil]; // I am assigning this json object to an array because as i show it is in array format. 
现在

NSArray *idArray = [[NSMutableArray alloc] init]; 
NSArray *pathArray = [[NSMutableArray alloc] init]; 
NSArray *descArray = [[NSMutableArray alloc] init]; 
for(NSDictionary *news in serverResponseArray) 
{ 
    [idArray addObject:[news valueForKey:@"id"]]; 
    [pathArray addObject:[news valueForKey:@"imagePath"]]; 
    [descArray addObject:[news valueForKey:@"enDesc"]]; 
} 
+0

请大厦,为什么有人做了投票。这样我可以在将来改善自己。 –