Swift JSON解析

JSON原始資料

假如原始資料如下

{
  "coord": {
    "lon": -0.1257,
    "lat": 51.5085
  },
  "weather": [
    {
      "id": 803,
      "main": "Clouds",
      "description": "broken clouds",
      "icon": "04d"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 284.07,
    "feels_like": 283.18,
    "temp_min": 282.35,
    "temp_max": 285.93,
    "pressure": 1008,
    "humidity": 75
  },
  "name": "Taipei"
}

解析方式

繼承Decodable

假設還需要Encodable時

繼承Codable

因為Codable = Decodable & Encodable

本文章只需要Decodable

struct WeatherData: Decodable {
    let name: String
    let main: Main
    let weather: [Weather]
}

struct Main: Decodable {
    let temp: Double
    let feels_like: Double
    let temp_min: Double
    let temp_max: Double
    let pressure: Int
    let humidity: Int
}

struct Weather: Decodable {
    let id: Int
    let main: String
    let description: String
    let icon: String
}

解析方式如下

func parseJSON(data: Data) {
    let decoder = JSONDecoder()
    do {
        let decoderData = try decoder.decode(WeatherData.self, from: data)
        print(decoderData.name)
    } catch {
        print(error)
    }
}

Swift


訂閱Codeilin的旅程,若有最新消息會通知。

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

WordPress.com.

向上 ↑

%d 位部落客按了讚: