Swift/Swift 기초문법
[Swift 기초문법 - 34] Codable
힛해
2024. 8. 14. 07:03
728x90
Codable이란?
JSON형태의 타입을 Decode Encode 하게 하는 프로토콜
decode - JSON to struct || class
encode - struct || class to JSON
typealias Codable = Decodable & Encodable
사용예시
let jsonFromServer = """
{
"nick_name" : "자우림"
"job" : "singer"
"user_name" : "2125"
}
"""
struct User : Codable {
var nickname : String
var job : String
var myUserName : String
enum CodingKeys : String, CodingKey{
case nickname = "nick_name"
case job
case myUserName = "user_name"
}
static func getUserFromJson(_ jsonString: String) -> Self { // 대문자면 자기 자신을 타입으로 사용
guard let jsonData : Data = jsonFromServer.data(using: .utf8) else {
return nil
}
do {
let user = try JSONDecoder().decode(User.self, from: jsonData)
print("user: \(user)")
return user
} catch {
print("에러발생: \(error.localizedDescription)")
return nil
}
}
}
let user = User.getUserFromJson(jsonFromServer)
Tip.
보통은 var 에 옵셔널을 붙이는게 좋다.