“`html

Swift JSON 資料解析:2025 最新語法與最佳實踐

Swift 是一種由 Apple 推出的程式語言,能夠讓開發者快速開發 iOS、macOS、watchOS 和 tvOS 的應用程式。在開發應用程式時,我們經常會遇到資料解析的問題,而 JSON 是一種常見的資料格式。在 Swift 中,我們可以使用 JSONSerialization 或更現代的 Codable 協議來解析 JSON 資料。

如何使用 JSONSerialization 來解析 JSON 資料

首先,我們需要將 JSON 資料轉換成 Data 物件,然後再使用 JSONSerialization 來解析資料:

let jsonString = "{\"name\": \"John Doe\", \"age\": 30}"
let jsonData = Data(jsonString.utf8)
let jsonObject = try? JSONSerialization.jsonObject(with: jsonData, options: [])

接下來,JSONSerialization 會將資料轉換成一個 Any 物件,它可以是一個 ArrayDictionary。我們可以使用 if letguard let 來確認資料的型態:

if let jsonDict = jsonObject as? [String: Any] {
    // 處理 Dictionary
    print("Name: \(jsonDict["name"] ?? "")")
    print("Age: \(jsonDict["age"] ?? "")")
} else if let jsonArray = jsonObject as? [Any] {
    // 處理 Array
    print("Array: \(jsonArray)")
}

使用 Codable 協議來解析 JSON

從 Swift 4 開始,Codable 協議提供了一個更簡潔的方式來解析 JSON。透過定義一個結構來對應 JSON 的結構,我們可以輕鬆地進行資料解析:

struct User: Codable {
    let name: String
    let age: Int
}

let decoder = JSONDecoder()
if let jsonData = jsonString.data(using: .utf8) {
    do {
        let user = try decoder.decode(User.self, from: jsonData)
        print("Name: \(user.name), Age: \(user.age)")
    } catch {
        print("Error decoding JSON: \(error)")
    }
}

如何將資料轉換成 JSON 格式

當我們需要將資料轉換成 JSON 格式時,可以使用 JSONSerializationdata(withJSONObject:options:) 方法:

let jsonObject: [String: Any] = [
    "name": "John Doe",
    "age": 30
]

let jsonData = try? JSONSerialization.data(withJSONObject: jsonObject, options: [])
if let jsonString = String(data: jsonData!, encoding: .utf8) {
    print(jsonString) // {"name":"John Doe","age":30}
}

錯誤排除與最佳實踐

在進行 JSON 解析時,常見的錯誤包括格式錯誤和資料型態不匹配。確保 JSON 格式正確,且在解析時使用正確的資料型態來避免崩潰。此外,當處理大型 JSON 資料時,考慮使用 Codable 來簡化解析流程,這不僅提升可讀性,還能減少錯誤發生的機會。

延伸應用

除了簡單的 JSON 解析,你可以將 JSON 與網路請求結合,從 API 獲取資料,並使用上述方法進行解析。這在開發現代的 iOS 應用程式時相當有用。

Swift JSON 資料解析 💻

Q&A(常見問題解答)

1. Swift 中 JSON 解析常見的錯誤是什麼?

常見的錯誤包括 JSON 格式不正確、資料型態不匹配及未處理的可選型別等問題。

2. 為什麼要使用 Codable 而不是 JSONSerialization

Codable 提供了一個更簡潔且安全的方式來解析與生成 JSON,能夠自動處理型別轉換並減少手動解析的錯誤。

3. 如何從 API 獲取 JSON 資料並解析?

可以使用 URLSession 進行網路請求,獲取 JSON 資料後,使用 CodableJSONSerialization 進行解析。

“`

Categorized in:

Tagged in:

,