Codable

Updated:

🔷 Codable

Codable 을 통해 Json 데이터를 class 혹은 struct instance 로 생성이 가능합니다

// """따옴표를 3개 사용하면 안에 있는 "" 도 같이 한번에 처리 합니다
let jsonFromServer = """
{
	"nick_name": "Jacob",
	"job": "iOS Developer",
	"user_name": "jacobkosmart"
}
"""


struct User: Codable {
	var nickname: String
	var job: String
	var myUserName: String
	// 위의 jsonFrom 서버의 key 값이 맴버의 변수 와 이름이 같아야됨
	// 만약 다를 경우 아래와 같이 코딩키를 이용하여 변경이 가능해서 서로 맞춰 줘야 함
	enum CodingKeys: String, CodingKey {
		case nicknmae = "nick_name"
		case job // 같은경우 그냥 씀
		// json 의 user_name 키를 myUserName이라고 이름으로 받겠다고 설정
		case myUserName = " user_name"
	}
}

// json String 을 데이터로 만들기
let jsonData : Data = jsonFromServer.data(using: .utf8)!

do {
	// json decoder 통해 json data 로 User instance 생성
	// try catch 로 에러 처리
	let user = try JSONDecoder().decode(User.self, from: jsonData)
	print("user: \(user)")
} catch {
	print("에러 발생! \(error.localizedDescription)")
}


Reference

Swift Tip of the day - 스위프트 기초 문법 - https://spangle-wedelia-2dc.notion.site/Swift-Tip-of-the-day-c428bfd990674bcfa2a4973e5d08c4eb

꼼꼼한 재은 씨의 스위프트 문법편 - https://book.jacobko.info/#/book/1186710233

Categories:

Updated:

Leave a comment