我是Objective-c的新手。他们是我的问题的许多解决方案,但我没有解决。我正在尝试解析JSON,我成功完成。代码如下:
NSString *urlString = [NSString stringWithFormat:@"%@",homePagesNews];
// The Openweathermap JSON responder
NSURL *url = [[NSURL alloc]initWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response;
NSData *GETReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:nil];
NSDictionary *res = [NSJSONSerialization JSONObjectWithData:GETReply options:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",res);
输出是:
{
"item_id": "102949",
"featured_image": "http://198.72.115.125/~pratidin/assets/news_images/2015/10/05/thumbnails/VC_mohit_ul_alam_pic.jpg",
"main_news_url": "http://198.72.115.125/~pratidin/api/detailnews/102949",
"title": "'শিক্ষকতা চর্চাহীন একটা তন্ত্র গোষ্ঠিতে পরিণত হয়েছে'",
"datetime": "2015-10-05 20:13:44",
"summery": "'শিক্ষক সমাজ একেবারে চর্চাহীন একটা তন্ত্র…",
"main_url": "http://198.72.115.125/~pratidin/api/categorynews/4"
},
{
"item_id": "102198",
"featured_image": "http://198.72.115.125/~pratidin/assets/news_images/2015/09/05/thumbnails/1438144816_104634.png.jpg",
"main_news_url": "http://198.72.115.125/~pratidin/api/detailnews/102198",
"title": "সাকার ছোট ছেলে হুম্মাম কারাগারে",
"datetime": "2015-09-05 20:23:17",
"summery": "রাজধানীর গুলশানে মারামারি অভিযোগে দায়ের…",
"main_url": "http://198.72.115.125/~pratidin/api/categorynews/4"
},
{
"item_id": "102180",
"featured_image": "http://198.72.115.125/~pratidin/assets/news_images/2015/09/05/thumbnails/1_104567.jpg",
"main_news_url": "http://198.72.115.125/~pratidin/api/detailnews/102180",
"title": "আজ বীরশ্রেষ্ঠ নূর মোহাম্মদের ৪৪তম শাহাদতবার্ষিকী",
"datetime": "2015-09-05 14:00:19",
"summery": "মুক্তিযুদ্ধের রণাঙ্গণের সাহসী সন্তান…",
"main_url": "http://198.72.115.125/~pratidin/api/categorynews/4"
}
我想获得这个值标题,datetime,main_url。我检查下面提到 link
提前致谢
答案 0 :(得分:3)
尝试使用此代码获取值
NSMutableArray *res = [NSJSONSerialization JSONObjectWithData:GETReply options:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainers error:nil];
NSLog(@"%@",res);
// get item id
NSLog(@"item-id :%@",[[res objectAtIndex:0] objectForKey:@"item_id"]);
NSLog(@"datetime %@",[[res objectAtIndex:0] objectForKey:@"datetime"]);
NSLog(@"main_url %@",[[res objectAtIndex:0] objectForKey:@"main_url"]);
或从响应中获取所有值
for (int i=0; i< res.count; i++){
NSLog(@"item-id :%@",[[res objectAtIndex:i] objectForKey:@"item_id"]);
NSLog(@"datetime %@",[[res objectAtIndex:i] objectForKey:@"datetime"]);
NSLog(@"main_url %@",[[res objectAtIndex:i] objectForKey:@"main_url"]);
}
答案 1 :(得分:1)
您的回复是字典值的集合,因此您需要将响应存储在NSArray对象中,如下所示:
NSArray *res = [NSJSONSerialization JSONObjectWithData:GETReply options:NSJSONReadingMutableLeaves|| NSJSONReadingMutableContainers error:nil];
要获取属性,请使用以下代码:
NSDictionary * dict = [res objectAtIndex:0];
NSLog(@"title = %@", [dict objectForKey:@"title"]);