如何在 iOS 中解析 mapquest 地理编码 JSON

Posted

技术标签:

【中文标题】如何在 iOS 中解析 mapquest 地理编码 JSON【英文标题】:How to parse mapquest geocode JSON in iOS 【发布时间】:2013-07-23 21:15:12 【问题描述】:

我正在尝试解析来自 Mapquest 地理编码 API 的 JSON 结果。

NSDictionary *JSONReponseDic = [NSJSONSerialization JSONObjectWithData:mapquestdata options:0 error:&error];
NSMutableArray *resultsArray = [JSONReponseDic objectForKey:@"results"];

NSDictionary *locationDic = [resultsArray objectAtIndex:0];
NSLog(@"loc dic %@", locationDic);

NSString *city = [locationDic objectForKey:@"adminArea5"];
NSLog(@"city : %@", city);

我可以解析直到locationDic,它返回

loc dic 
locations =     (
            
        adminArea1 = US;
        adminArea1Type = Country;
        adminArea3 = CA;
        adminArea3Type = State;
        adminArea4 = "Santa Clara County";
        adminArea4Type = County;
        adminArea5 = "Los Altos";
        adminArea5Type = City;
        displayLatLng =             
            lat = "37.37964";
            lng = "-122.11877";
        ;
        dragPoint = 0;
        geocodeQuality = POINT;
        geocodeQualityCode = P1AAA;
        latLng =             
            lat = "37.37949";
            lng = "-122.11903";
        ;
        linkId = 0;
        mapUrl = "http://www.mapquestapi.com/staticmap/v4/getmap?key=Fmjtd|luub206tl1,rg=o5-9ubah0&type=map&size=225,160&pois=purple-1,37.37949,-122.11903,0,0|&center=37.37949,-122.11903&zoom=15&rand=-159915059";
        postalCode = "94022-2707";
        sideOfStreet = R;
        street = "145 1st St";
        type = s;
    
);
providedLocation =     
    location = "145 1st St,Los Altos, CA 94022";
;

然后,当我尝试获取城市名称时,日志返回 null。我的解析方式正确吗?

【问题讨论】:

【参考方案1】:

应该是[locationDic valueForKeyPath:@"locations.adminArea5"];

【讨论】:

我做了NSString *city = [locationDic objectForKey:@"locations.adminArea5"];,它仍然返回NULL 查看我编辑的答案。我是凭记忆写的,正确的方法是valueForKeyPath:而不是objectForKey: 谢谢。 valuekeyforpath 似乎可以完成这项工作。 没问题,用 Yelp API 检查你的其他问题,我刚刚回答了。 :facepalm: 抱歉。在这里超越自己。

以上是关于如何在 iOS 中解析 mapquest 地理编码 JSON的主要内容,如果未能解决你的问题,请参考以下文章

从 python 列表中删除邮政编码(从 MapQuest 输出中获取州名)

使用 MapQuest Directions API 从用户地理位置创建路线

如何解析谷歌地图地理编码结果

如何在 iOS 中使用反向谷歌地理编码?

“MapQuest”编码挑战 - 消除相互抵消的“方向”

iOS 如何在 2015 年将地址转换为 GPS 坐标(地理编码)?