使用 swift 3 从谷歌地图获取 JSON 数据

Posted

技术标签:

【中文标题】使用 swift 3 从谷歌地图获取 JSON 数据【英文标题】:Getting JSON data from google maps with swift 3 【发布时间】:2016-10-15 16:21:38 【问题描述】:

我目前正在使用带有 JSON 的 google maps 数据的 ios swift 3 应用程序项目,但是当我开始编译时,我无法获得 ["results"] 的值:

if let results = dic["results"] as? JSONDictionary 
                                print(results)
                            

虽然 dict 包含以下内容:

["results": <__NSSingleObjectArrayI 0x155d73c0>(

    "address_components" =     (
                
            "long_name" = Paris;
            "short_name" = Paris;
            types =             (
                locality,
                political
            );
        ,
                
            "long_name" = Paris;
            "short_name" = Paris;
            types =             (
                "administrative_area_level_2",
                political
            );
        ,
                
            "long_name" = "\U00cele-de-France";
            "short_name" = "\U00cele-de-France";
            types =             (
                "administrative_area_level_1",
                political
            );
        ,
                
            "long_name" = France;
            "short_name" = FR;
            types =             (
                country,
                political
            );
        
    );
    "formatted_address" = "Paris, France";
    geometry =     
        bounds =         
            northeast =             
                lat = "48.9021449";
                lng = "2.4699209";
            ;
            southwest =             
                lat = "48.815573";
                lng = "2.225193";
            ;
        ;
        location =         
            lat = "48.856614";
            lng = "2.3522219";
        ;
        "location_type" = APPROXIMATE;
        viewport =         
            northeast =             
                lat = "48.9021449";
                lng = "2.4699209";
            ;
            southwest =             
                lat = "48.815573";
                lng = "2.225193";
            ;
        ;
    ;
    "place_id" = ChIJD7fiBh9u5kcRYJSMaMOCCwQ;
    types =     (
        locality,
        political
    );

)
, "status": OK]

而 JSONDictionary = [String:Any]

这里有什么问题?谢谢。

【问题讨论】:

你的结果是一个数组而不是字典 【参考方案1】:

将外部 JSON 转换为 [String: Any],因此可以通过以下方式完成:

假设您已转换为 [String: Any] 的 dic 然后继续转换结果值的内容,这是一个数组。

if let results = dic["results"] as? Array<Any> 
    print(results)

那么您应该能够进一步打印和抽象 JSON。

【讨论】:

以上是关于使用 swift 3 从谷歌地图获取 JSON 数据的主要内容,如果未能解决你的问题,请参考以下文章

JSON,如何从谷歌地图 API 获取所有国家

从谷歌静态地图中的像素坐标获取经度/纬度

从谷歌地图上的 JSON 更新标记

如何在颤振中从谷歌地图获取位置的经纬度坐标?

如何:从谷歌地图上的 JSON 动态更新标记

使用标记从谷歌地图获取纬度/经度坐标