如何在Objective-C中解析JSON响应的数据?

时间:2013-04-19 13:11:05

标签: ios objective-c json facebook-graph-api nsdictionary

我在此link

中获得了JSON输出

我在此输出中提取了id。 (即)

419023188150340,
419023228150336,
419023278150331,
419023318150327,
419044998148159,
419045028148156

使用以下代码

[[dict objectForKey:@"data"]valueForKey:@"id"];

dict具有link

上显示的总输出

我在tableview中显示了这个 现在,如果我在tableview中点击单元格。该表应该获取“picture”的值并将其显示在控制台(NSLog)中。

我使用以下代码获取响应并将其存储在字典中(此处为dict)

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
{
    responseData=nil;
    idArray=nil;
    responseData=[[NSMutableData alloc]init];
    idArray=[[NSMutableArray alloc]init];
    dict=[[NSDictionary alloc]init];   
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{
    [responseData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
    dict=[NSJSONSerialization JSONObjectWithData:responseData options:0 error:NULL];
    [idArray addObjectsFromArray:[[dict objectForKey:@"data"]valueForKey:@"id"]];
    [tableVw reloadData];
}

任何人都可以告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:2)

你做错了。您首先获得NSArray IDS,并且必须循环它以提取每个ID。试试这个 -

NSArray *fbIds = [dict objectForKey:@"data"];
for(NSDictionary *fbId in fbIds)
{
    NSLog("FB ID: %@", [fbID valueForKey:@"id"]);
}

提取正确的Facebook_ID后,您可以使用http://graph.facebook.com/419023188150340/picture来获取图片。希望这会有所帮助...