1

我有如下的json数据。

[
    {"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。

4

4 回答 4

2

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

NSArray *idArray = [dictionary valueForKeyPath:@"id"]; // KVO
于 2013-07-04T12:56:52.833 回答
2

用这个

NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:receivedData options:NSJSONReadingMutableContainers error:nil];

然后你可以从那里提取你需要的所有信息,你有NSArray包含NSDictionary,你可以去那里使用objectForKey:来获取你需要的所有信息。

于 2013-07-04T12:58:52.413 回答
1

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

NSArray *idArray = [news valueForKeyPath:@"id"];
NSArray *pathArray = [news valueForKeyPath:@"imagePath"];
NSArray *descArray = [news valueForKeyPath:@"enDesc"];
于 2013-07-04T13:04:12.660 回答
-1

是的,以上所有答案都是正确的,我只是将它们整合在一起以便您轻松使用:

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"]];
}
于 2013-07-04T13:36:14.413 回答