我們今天要正式開始建立天氣API的資料庫。
我們可以先回到昨天用的那個線上 JSON 解析工具。
我們在點選右邊的小方格把外層資料都收起來,只留下最主要的三個欄位。
這樣可以更清楚地看到整個 JSON 的結構長什麼樣子。
可以發現最外層有三個主要資料項目:
struct weatherData: Codable {
var success: String
var result: resultData
var records: recordsData
}
Tips:這邊的 Codable
關鍵字代表這個結構能夠被自動轉換成 JSON。
接下來我們繼續打開 result
這一層。
可以看到裡面有兩項資料:resource_id
和 fields
。
所以我們再來建立第二個結構:
struct resultData: Codable {
var resource_id: String
var fields: [fieldsData]
}
Tips:這邊 fields
是一個陣列(用中括號表示),代表它底下還有更多子項目。
在 fields
裡面,我們可以看到每個物件都有 id
跟 type
。
所以這一層我們建立第三個結構:
這邊發現他資料已經到頭了,那我們就把剩下的寫到資料庫裡面就好,重複的寫一次就夠了。
struct fieldsData: Codable {
var id: String
var type: String
}
這樣一來,result
這個部分就完成了!
接著我們來到下一個主要欄位 records
。
裡面有 datasetDescription
和 location
。
這邊同樣建立新的結構:
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。