这是一个复杂的json格式,json中包含了数组,数组中有包含了若干级的json数据。
先将URL转码为UTF8,基于它创建一个NSMutableURLRequest,再使用NSURLConnection的sendAsynchronousRequest的方法,将response数据放到block中分析,分析方法就是NSJSONSerialization的类方法+ (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error。
它的分析步骤如下:
第一步,根据json数据结构得到字典
NSDictionary *resultsDic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
第二步,根据字典中组成,得到key为@"results"对应的对象是数组。
NSArray *resultsArr = [resultsDic objectForKey:@"results"];
第三步,使用for循环遍历这个数组
for (NSDictionary * resultDetailDic in resultsArr)
{
NSDictionary * locationDic=[[resultDetailDic objectForKey:@"geometry"] objectForKey:@"location"];
NSString * lat=[locationDic objectForKey:@"lat"];
NSString * lng=[locationDic objectForKey:@"lng"];
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"locationDic.lat 是--->%@\n",lat);
NSLog(@"locationDic.lng 是--->%@\n",lng);
});// dispatch async main
}
第四步,根据for循环遍历的结果,得到每一个元素都是一个字典。
NSDictionary * locationDic=[[resultDetailDic objectForKey:@"geometry"] objectForKey:@"location"];
iOS中NSJSONSerialization解析JSON数据暨google地理信息处(2)
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/c330fa1372ab8988c5958d4d66d86bef.html