Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ObservedObject
- 데이터베이스 공부
- swift문법
- 데이터베이스
- 애플 디벨로퍼 아카데미
- Swift 문법
- 애플 디벨로퍼 아카데미 21주차 회고
- SWIFT
- Apple Developer Academy @ POSTECH
- ObservableObject
- 치지직
- 숭실대
- Swift 디자인패턴
- 운영체제
- global soop
- 소프트웨어분석및설계
- react
- iOS 개발 오류
- 애플 디벨로퍼 아카데미 후기
- 애플 아카데미 후기
- useReducer
- 네이버 치지직
- 제앱소
- apple developer academy 후기
- StateObject
- OS
- 앱 비교 프로젝트
- Swift 기능
- sqoop
- 네이버 부스트캠프
Archives
- Today
- Total
사과하는 제라스
[Swift 문법] Codable 본문
목차
728x90
반응형
Codable은 무엇일까?
-> Encodable과 Decodable을 합친 프로토콜이다.
그럼 걔네는 뭔데??
- Decodable은 JSON을 일반 값들로 추출된 객체
- Encodable은 JSON으로 변환된 객체
일단 예시로 보자.
import UIKit
let jsonFromServer = """
{
"name": "윤동주"
"job": "대학생",
"nickname": "Xerath",
}
"""
// de code = 제이슨을 클래스, 스트럭트로 바꾸기
// en code = 제이슨으로 만들기
//EnCodable & Decodable
struct User : Decodable {
var nickname: String?
var job: String
var myUserName: String
// 이렇게 CodingKey로 enum을 설정해서 각 키를 어떻게 받아올지 적어줘야 추출이 가능하다.
enum CodingKeys: String, CodingKey {
case nickname = "name"
case job
case myUserName = "nickname"
}
static func getUserFromJson(_ jsonString: String) -> Self? {
guard let jsonData : Data = jsonString.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)
728x90
반응형
'제라스의 iOS 공부 > Swift 문법' 카테고리의 다른 글
[Swift 문법] 고차함수 - reduce (0) | 2023.08.19 |
---|---|
[Swift 문법] 멀티 트레일링 클로저(multi-trailing Closure) (0) | 2023.08.18 |
[Swift 문법] Dictionary grouping (0) | 2023.08.18 |
[Swift 문법] compactMap이란? (0) | 2023.08.18 |
[Swift 문법] class func와 static func (0) | 2023.08.18 |