Link
Notice
HIT해
[Swift 기초문법 - 34] Codable 본문
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 에 옵셔널을 붙이는게 좋다.
'Swift > 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 36] Convenience init (0) | 2024.08.14 |
---|---|
[Swift 기초문법 - 35] 멀티 트레일링 클로저 (0) | 2024.08.14 |
[Swift 기초문법 - 33] Getter, Setter (0) | 2024.08.14 |
[Swift 기초문법 - 32] 의존성 주입 Dependency Injection (0) | 2024.08.14 |
[Swift 기초문법 - 31] dictionary grouping (0) | 2024.08.14 |