当前位置: 首页 > 知识库问答 >
问题:

来自google解析json的iOS地理编码数据

陈业
2023-03-14

我正在从谷歌地图上提取一些数据,但我似乎不能用它做任何事情。下面是我的代码:

- (void)connectionDidFinishLoading:(NSURLConnection *)theConnection  {

//do something with the data!
NSError *e = nil;
//parse the json data
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: receivedData options: NSJSONReadingMutableContainers error: &e];

//get the lat and long and put it into an array
locationData = [[NSMutableArray alloc] init];

NSLog(@"%@", [jsonArray objectAtIndex:0]);

}
- (void)connectionDidFinishLoading:(NSURLConnection *)theConnection  {

//do something with the data!
NSError *e = nil;
//parse the json data
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: receivedData options: NSJSONReadingMutableContainers error: &e];

//get the lat and long and put it into an array
locationData = [[NSMutableArray alloc] init];

for(NSDictionary* thisLocationDict in jsonArray) { 

    NSString* location = [thisLocationDict objectForKey:@"results"];
    [locationData addObject:location];
}
}
-[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x798a270
http://maps.googleapis.com/maps/api/geocode/json?address=2900+Horizon+Drive+King+of+Prussia+,+PA&sensor=false

你知道我做错了什么吗?

共有1个答案

越正阳
2023-03-14

与从google获得的数据的不同之处在于,它是按键分开的,比如results、geometome、formatted_address...

您应该这样做:

NSError *error;

NSString *lookUpString = [NSString stringWithFormat:@"http://maps.googleapis.com/maps/api/geocode/json?address=%@&components=country:AU&sensor=false", self.searchBar.text];

lookUpString = [lookUpString stringByReplacingOccurrencesOfString:@" " withString:@"+"];

NSData *jsonResponse = [NSData dataWithContentsOfURL:[NSURL URLWithString:lookUpString]];

NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:jsonResponse options:kNilOptions error:&error];

self.locationArray = [[jsonDict valueForKey:@"results"] valueForKey:@"formatted_address"];

int total = self.locationArray.count;
NSLog(@"locationArray count: %d", self.locationArray.count);

for (int i = 0; i < total; i++)
{
    NSString *statusString = [jsonDict valueForKey:@"status"];
    NSLog(@"JSON Response Status:%@", statusString);

    NSLog(@"Address: %@", [self.locationArray objectAtIndex:i]);

}
 类似资料:
  • 问题内容: 我正在使用Java和XStream通过http解析Google地理编码请求。我的想法是拥有一个具有所有地理编码属性(例如纬度/经度,城市,省/州等)的Address类,但是我在使用xstream解析xml时遇到了问题。 Google的回应与此类似: 不能很好地显示出来,但是代码的内容在AddressDetails标记中。 无论如何,我是Java和XStream的新手,所以API术语对我

  • 问题内容: 这是进入一个位置时可以得到纬度和经度的代码。我相信我的代码是我所知。但是进入一个位置后,我得到了空白页。 这是代码: 问题答案: 您正在尝试在此处使用JSONP。 JSONP 如果URL包含字符串“ callback =?” (或类似,由服务器端API定义),则将request>视为JSONP。有关更多详细信息,请参见$ .ajax()中有关jsonp数据类型的讨论。 重要提示:从jQ

  • 问题内容: 我有一个充满地址的数据库,我需要获取经纬度,并且需要很长一段时间,因此我想遍历它们并使用Google Geocode更新我的数据库。我对如何解析JSOn结果以获取所需信息感到困惑: 我以为我可以简单地建立一个快速的类,并使用JSON.Net对结果进行反序列化,这是可行的,但是我想在类结构中使用它: 以下是Google返回的示例: 我在这里想念简单,有人吗? 问题答案: 我尝试了一下,做

  • 问题内容: 我在iOS中有一个JSON字符串作为NSString对象。我想对此进行解析并提取JSON字符串中的给定参数。有没有一种有效的方法来解析此内容,或者是搜索子字符串等的唯一方法? 问题答案: 使用iOS 5的方法是使用类。您将需要首先将字符串转换为NSData对象,然后调用类方法 请注意,这将返回NSDictionary或NSArray,具体取决于您的JSON字符串表示字典还是数组。

  • 问题内容: 我用下面的Perl代码来解析在JSON数组,使用模块。但是返回的数组长度为1,我无法对其进行正确的迭代。所以问题是我无法使用返回的数组。 输出结果为: 问题答案: 该函数返回一个arrayref而不是一个列表。您必须取消引用它才能获取列表: 您可能需要阅读和

  • 问题内容: 我正在为现有网站创建一个应用程序。他们目前具有以下格式的JSON: 他们使用Java脚本将\字符转义后解析。 我的问题是当我使用以下命令在iOS中解析它时: 并这样做: 而不是我得到了对象。 该网站已经投入生产,所以我不能要求他们更改现有结构以返回适当的对象。对他们来说,这将是很多工作。 因此,在他们改变基础结构之前,有什么方法可以使它们像在它们上面一样地工作吗? 任何帮助/建议对我都