ios - 是否可以在 JSON 数据中搜索特定键?

标签 ios objective-c google-maps-sdk-ios

我将 Google Maps Geocoding API 与适用于 iOS 的 Google Places Autocomplete API 结合使用来搜索地址并返回邮政编码。当返回 JSON 数据时,我将其存储在 NS 字典中,然后使用条件检查返回的组件数。在我的第一个测试地址中,邮政编码在 address_components 中的索引 8 处返回,因此我使用了以下条件:

if ([[[[json objectForKey: @"results"]objectAtIndex:0] objectForKey:@"address_components"] count]>=8) {
//stuff
}

然而,在我的第二个测试地址上,邮政编码位于索引 7 处。与其尝试修改我的条件以说明返回 json 数据的所有可能方式,我是否可以搜索 json 数据以查找返回任何东西之前的邮政编码?邮政编码的 json 数据(在地址组件键内)如下所示:

{
"long_name" = 20001;
"short_name" = 20001;
 types =   (
"postal_code"
     );

有没有办法让我搜索“postal_code”类型并返回它的“long_name”?或者,是否可以编写一个仅返回邮政编码(如果存在)的地理编码 API 调用?

最佳答案

这是您的邮政编码:

for (NSDictionary *component in json[@"results"][0][@"address_component"]) {
  if ([component[@"types"] containsObject:@"postal_code"]) {
    return component[@"long_name"];
  }
}

关于ios - 是否可以在 JSON 数据中搜索特定键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280196/

相关文章:

ios - 如何在来电屏幕上实现 "contact"按钮

ios - 获取引用文件夹 ios 中子目录的名称

swift - 如何使用 Google Maps SDK for Swift 查找用户的位置?

objective-c - 如何在 Objective C 中获取这些对象数组中的对象的属性?

ios - 在 Swift 中获取 header 响应

iPhone:对于更快的蓝牙最有用的技术是什么?

ios - UISplitViewController 不适用于 iPhone(5 或 6)

objective-c - 存储十二生肖开始和结束日期的最佳方式是什么

ios - 当 iOS 设备靠近某个 map 点时运行操作

json - Google Directions Api URL 返回 nil