Получение данных в формате JSON с карт Google с помощью swift 3

#ios #json #google-maps #swift3

#iOS #json #google-карты #swift3

Вопрос:

В настоящее время я работаю над проектом приложения ios swift 3, в котором используются данные Google Maps с помощью JSON, но когда я начинаю компиляцию, я не могу получить значение [«результаты»]:

 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. Ваши результаты представляют собой массив, а не словарь

Ответ №1:

Приведите внешний JSON в виде [String: Any], что будет сделано следующим образом:

Предполагая, что dic, который вы привели, [String: Any] затем выполните приведение содержимого значения results, которое представляет собой массив.

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

Затем вы должны иметь возможность печатать и абстрагировать JSON дальше.