Правильно разбор JSON в Swift 3

Я пытаюсь получить ответ JSON и сохранить результаты в переменной. У меня были версии этого кода в предыдущих выпусках Swift, пока не была выпущена GM-версия Xcode 8. Я посмотрел несколько похожих постов на StackOverflow:Синтаксический анализ Swift 2 JSON - невозможно добавить значение типа 'AnyObject' а такжеРазбор JSON в Свифт 3.

Однако, кажется, что идеи, переданные там, не применимы в этом сценарии.

Как правильно разобрать ответ JSON в Swift 3? Что-то изменилось в способе чтения JSON в Swift 3?

Ниже приведен код (его можно запустить на детской площадке):

import Cocoa

let url = "https://api.forecast.io/forecast/apiKey/37.5673776,122.048951"

if let url = NSURL(string: url) {
    if let data = try? Data(contentsOf: url as URL) {
        do {
            let parsedData = try JSONSerialization.jsonObject(with: data as Data, options: .allowFragments)

        //Store response in NSDictionary for easy access
        let dict = parsedData as? NSDictionary

        let currentConditions = "\(dict!["currently"]!)"

        //This produces an error, Type 'Any' has no subscript members
        let currentTemperatureF = ("\(dict!["currently"]!["temperature"]!!)" as NSString).doubleValue

            //Display all current conditions from API
            print(currentConditions)

            //Output the current temperature in Fahrenheit
            print(currentTemperatureF)

        }
        //else throw an error detailing what went wrong
        catch let error as NSError {
            print("Details of JSON parsing error:\n \(error)")
        }
    }
}

Редактировать: Вот пример результатов вызова API послеprint(currentConditions)

["icon": partly-cloudy-night, "precipProbability": 0, "pressure": 1015.39, "humidity": 0.75, "precipIntensity": 0, "windSpeed": 6.04, "summary": Partly Cloudy, "ozone": 321.13, "temperature": 49.45, "dewPoint": 41.75, "apparentTemperature": 47, "windBearing": 332, "cloudCover": 0.28, "time": 1480846460]

Ответы на вопрос(7)

Ваш ответ на вопрос