swift5,JSONDecoder解析数据,Codable遇到的问题

成功拿到了后端返回的数据,但是response为nil

let response = try? JSONDecoder().decode(Result.self, from: moyaResponse.data)

查找了一天原因没找到,后来翻墙出去找到了:

此方法的關鍵在於遵從 Decodable 的自訂型別和 JSON 資料對應,如果不小心犯了某些小錯誤,比方把 message 拼成 massage,將讓 JSONDecoder 的 decode 解碼失敗

JSON 裡某些 key 不一定有值,像這樣的 key 我們宣告 property 時必須宣告成 optional,否則在找不到 key 對應的值時一樣會出現剛剛的 keyNotFound 錯誤。

property 的型別不對,比方 status 應該是 String,我們卻宣告成 Int。

参考链接:https://medium.com/%E5%BD%BC%E5%BE%97%E6%BD%98%E7%9A%84-swift-ios-app-%E9%96%8B%E7%99%BC%E5%95%8F%E9%A1%8C%E8%A7%A3%E7%AD%94%E9%9B%86/%E6%89%BE%E5%87%BA-jsondecoder-%E7%9A%84-decode-%E9%8C%AF%E8%AA%A4-c9c6deae297

你可能感兴趣的:(swift5,JSONDecoder解析数据,Codable遇到的问题)