JSON의 형태
- 보통 html, xml, json의 형태로 리턴된다.
- 앱과 연동하는 API는 xml과 json중 하나를 사용하는데, xml 형식은 용량이 크고 최종 객체로 파싱하기 어렵다는 단점이 있기 때문에 보통 json을 많이 사용한다.
- 대부분의 API는
code
와 같은 서브 코드를 보내준다.
- 이는 HTTP 상태 코드와는 다른 개념이다.
- 실제 HTTP 접속에는 성공했으나, 객체가 없는 경우 이 서브 코드를 404를 리턴하거나 하는 방식이다.
- 서브 코드는 정해진 것이 없기 때문에 API 문서 확인을 해야한다.
message
: 서버에서 보내는 메시지.
JSON Decoder(Parsing)
- 바이너리 데이터에 담긴 json 문자열을 지정한 타입으로 해석한 후 결과를 새로운 인스턴스로 리턴해줌.
- 파싱, 또는 디코딩이라고 함.
HOW
1. JSON과 같은 구조를 가진 타입을 선언(Codable 프로토콜)
- 클래스나 구조체로 선언. 보통 구조체를 사용.
Codable
프로토콜을 반드시 채택해야 한다.
2. JSONDecoder 객체 생성 후 디코딩
try-catch
사용
- 리턴될 객체 타입 뒤에는
.self
키워드를 붙여야 함.
Date 파싱
Date
타입으로 바로 파싱하려면, Date Formatting이 강제된다.
Json에서 넘겨주는 값의 형태를 보면 "yyyy-MM-dd'T'HH:mm:ss"
로 되어있다.
Date의 기본 형식
- Double로 되어있으며, 초 단위의 값이다. 즉, date가 3600이라면, 2001-01-01 01:00:00 + 0000인 것이다.
Coca Timestamp
2001.1.1 00:00:00 이 기준이 되는 값 + Double
Unix Timestamp
1970.1.1 00:00:00이 기준이 되는 값 + Double
ISO 8601
2016-10-27T17:13:40+00:00 과 같은 형식
dateDecodingStrategy
- decoder의 date파싱 전략을 설정할 수 있다.
- 'T'는 날짜와 시간을 구별해주는 문자다. 반드시 작은따옴표로 감싸야 한다.
정리