Swift 기초 문법 - 38. 코더블 Codable

정성윤·2023년 8월 7일
0

Swift 이론

목록 보기
40/64

Codable은 Swift에서 사용되는 프로토콜로, 데이터를 인코딩하거나 디코딩할 때 사용되는 일련의 기능을 정의합니다.

Codable을 채택한 타입은 JSON, Property List 및 다른 형식의 데이터를 쉽게 변환하고 다룰 수 있습니다.

1. Encodable

Encodable은 타입을 인코딩할 수 있는 기능을 제공합니다. 이 프로토콜을 준수하는 타입은 JSON이나 다른 형식으로 인코딩될 수 있습니다.
// en code = 제이슨으로 만들기

2. Decodable

Decodable은 타입을 디코딩할 수 있는 기능을 제공합니다. ""
// de code = 제이슨을 클래스, 스트럭트로 바꾸기

3. Codable

Codable은 Encodable, Decodable 프로토콜을 모두 채택한 것으로, 타입이 인코딩 및 디코딩 양쪽에서 모두 사용될 수 있음을 의미합니다.

struct Person: Codable {
    var name: String
    var age: Int
}
let person = Person(name: "Alice", age: 30)

>> // Encoding (인코딩)
let encoder = JSONEncoder()
if let encodedData = try? encoder.encode(person) {
    if let jsonString = String(data: encodedData, encoding: .utf8) {
        print(jsonString)
    }
}
>> // Decoding (디코딩)
let json = """
{
    "name": "Bob",
    "age": 25
}
"""
let jsonData = Data(json.utf8)
let decoder = JSONDecoder()
if let decodedPerson = try? decoder.decode(Person.self, from: jsonData) {
    print(decodedPerson.name) // "Bob"
    print(decodedPerson.age) // 25
}

참고(출처) : 개발하는 정대리, 야곰(Swift5)

profile
이유있는 스위프트 개발자

0개의 댓글