iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
生成式 AI

Swift一下就會了系列 第 28

Day 28 天氣API 2

  • 分享至 

  • xImage
  •  

我們今天要正式開始建立天氣API的資料庫。

我們可以先回到昨天用的那個線上 JSON 解析工具。
https://ithelp.ithome.com.tw/upload/images/20251012/20178746XDD5kMb69w.png
我們在點選右邊的小方格把外層資料都收起來,只留下最主要的三個欄位。
https://ithelp.ithome.com.tw/upload/images/20251012/20178746Jvp164y6SN.png
這樣可以更清楚地看到整個 JSON 的結構長什麼樣子。
可以發現最外層有三個主要資料項目:

struct weatherData: Codable {
    
    var success: String
    
    var result: resultData
    
    var records: recordsData
}

Tips:這邊的 Codable 關鍵字代表這個結構能夠被自動轉換成 JSON。

接下來我們繼續打開 result 這一層。
https://ithelp.ithome.com.tw/upload/images/20251012/20178746TZgIUl2cPc.png
可以看到裡面有兩項資料:resource_idfields
所以我們再來建立第二個結構:

struct resultData: Codable {
    var resource_id: String
    
    var fields: [fieldsData]
}

Tips:這邊 fields 是一個陣列(用中括號表示),代表它底下還有更多子項目。

fields 裡面,我們可以看到每個物件都有 idtype
所以這一層我們建立第三個結構:
https://ithelp.ithome.com.tw/upload/images/20251012/20178746xGKBMrRsEf.png
這邊發現他資料已經到頭了,那我們就把剩下的寫到資料庫裡面就好,重複的寫一次就夠了。

struct fieldsData: Codable {
    var id: String
    
    var type: String
}

這樣一來,result 這個部分就完成了!

接著我們來到下一個主要欄位 records
裡面有 datasetDescriptionlocation
https://ithelp.ithome.com.tw/upload/images/20251012/20178746uLeJciNhEz.png
這邊同樣建立新的結構:

struct recordsData: Codable {
    var datasetDescription: String
    
    var location: [locationData]
}

接著就一個一個接著找下面的資料。
這邊我們直接看最後都寫上去的資料庫長怎樣。


struct weatherData: Codable {
    
    var success: String
    
    var result: resultData
    
    var records: recordsData
}
struct resultData: Codable {
    var resource_id: String
    
    var fields: [fieldsData]
}
struct fieldsData: Codable {
    var id: String
    
    var type: String
}
struct recordsData: Codable {
    var datasetDescription: String
    
    var location: [locationData]
}
struct locationData: Codable {
    var locationName: String
    
    var weatherElement: [weatherElementData]
}
struct weatherElementData: Codable {
    var elementName: String
    
    var time: [timeData]
}
struct timeData: Codable {
    var startTime: String
    
    var endTime: String
    
    var parameter: parameterData
}
struct parameterData: Codable {
    var parameterName: String
    var parameterUnit: String?
    var parameterValue: String?
}

這樣就完成一個API資料庫的撰寫了喔。

結語

今天我們完成了整個天氣 API 資料庫的設計。
有了這個資料庫,接下來我們就能輕鬆顯示天氣內容,做出天氣 APP。


上一篇
Day 27 天氣API 1
下一篇
Day 29 天氣API 3
系列文
Swift一下就會了30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言