利用中斷點將 JSON Data 變成字串

開發 iOS App 時,我們時常串接 API 抓取 JSON 資料。不過寫 code 寫多了,難免遇到 bug,有時在 JSONDecoder 解析 JSON 時會遇到問題。此時我們通常有兩種解法:

解法1: 研究 JSONDecoder 告訴我們的錯誤訊息

解法2: 將 JSON Data 變成字串,研究 JSON 資料是否有問題

假設原本抓取 JSON 的程式如下,在不改動程式的前提下,我們可以利用中斷點將 JSON Data 變成字串顯示。

struct SearchResponse: Codable {
let resultCount: Int
let results: [StoreItem]
}

struct StoreItem: Codable {
let artistName: String
let trackName: String
}
class ViewController: UIViewController {

func fetchItems() {
let urlStr = "https://itunes.apple.com/search?term=swift&media=music"
if let url = URL(string: urlStr) {
URLSession.shared.dataTask(with: url) { data, response , error in
if let data {
let decoder = JSONDecoder()
do {
let searchResponse = try decoder.decode(SearchResponse.self, from: data)
print(searchResponse)
} catch {
print(error)
}
}
}.resume()

}
}


override func viewDidLoad() {
super.viewDidLoad()
fetchItems()
}

}

加入中斷點

在 data 已經抓到後設定中斷點。

從中斷點箭頭的右鍵選單點選 Edit Breakpoint

Action 選擇 Add Action

Action 選擇 Debugger Command

輸入將 Data 變成 String 印出的指令

po print(String(data: data, encoding: .utf8)!)

ps: 關於 po 的相關說明,可參考以下連結。

執行 App 後,程式順利停在剛剛設定的中斷點,並且印出 JSON 的文字內容。

--

--

彼得潘的 iOS App Neverland
彼得潘的 Swift iOS App 開發問題解答集

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com