티스토리 뷰
반응형
Codable - JSON 날짜 디코딩 쉽게 하기
오늘은 Codable을 활용하여 JSON 디코딩을 할 때 알아두면 좋을 팁을 소개해드리려고 합니다!
예를 들어 아래와 같은 타입의 데이터가 있다고 가정해보겠습니다.
{
"name": "hyeon",
"createdAt": "2021-05-02T20:48:10"
}
보통 createdAt을 String으로 받고, DateFormatter로 date로 변환시켜서 사용하셨을 것 같습니다.
struct Info: Codable {
let name: String
let createdAt: String
}
// decode
let response = try JSONDecoder().decode(Info.self, from: data)
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = dateFormatter.date(from: response.createdAt)
이렇게 date 값을 가지고 올 수 있었죠.
그렇다면 이번에는 새로운 방법이 있습니다.
Info의 createdAt을 아예 Date로 설정해서 디코딩할 때 바로 해당 형식으로 디코딩 될 수 있는데요.
struct DateInfo: Codable {
let name: String
let createdAt: Date
}
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let dateDecoder = JSONDecoder()
dateDecoder.dateDecodingStrategy = .formatted(dateFormatter)
let response = dateDecoder.decode(DateInfo.self, from: data)
DateFormatter 설정은 똑같이 진행하고,
Decoder에서 date decoding strategy를 해당 dateFormatter의 형식으로 할거다!!고 설정해주면
dateDecoder를 써서 디코딩을 하는 경우에는 Date를 전부 위의 형식으로만 받아들이게 된다는 것입니다!
물론 "2021-05-02 15:11" 처럼 다른 형식의 값이 오면 에러가 나겠지만요..
아주 간단하게 Date를 디코딩 하는 방법에 대해 알아보았습니다!
Codable은 정말 강력한 JSON Parsing 타입인데요, 이 (저한테만 새로운) 기능을 통해서 더욱 편리하게 코더블을 사용하시길 바랍니다!
반응형
'Swift' 카테고리의 다른 글
Xcode16 기본 폴더 구성방식 변경 (Group -> Folder) (0) | 2024.10.30 |
---|---|
Swift URLSession 공통화 하기 (0) | 2021.04.18 |
Swift Generic 살펴보기 (0) | 2021.03.21 |
Delegate Pattern 활용하기 (ViewController끼리 Data 전달하기 - 2) (3) | 2021.02.07 |
RxSwift로 UITextField 글자 수 제한하기 (0) | 2021.01.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코르도바 iOS Framework
- 코르도바 iOS
- urlrequest 공통화
- Swift 프로젝트에서 Objective-C
- urlsession 공통화
- ios framework device simulator
- UITextField 글자수 제한하기
- UIUserInterfaceStyle
- User Interface Style
- RxSwift UITetxtField
- passing data between ViewControllers
- Objective-C 프로젝트에서 Swift
- swift delegate
- codable
- loadView
- xcode 16
- passing data between ViewController and View
- linux java 설치
- iOS Dark Mode
- 코르도바 Swift
- urlrequest 모듈화
- swift generic
- urlsession 모듈화
- loadView viewDidLoad
- xcode group folder
- Viewcontroller data
- swift json 파싱
- ios universal framework
- 코르도바 플러그인
- codable date
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함