반응형
대부분의 OpenAPI는 XML, JSON 등의 형식으로 데이터를 제공하고 있습니다.
JSON은 XML보다 핸들링하기도 좋고 가독성도 좋아서, 앱 개발 시 JSON을 많이 활용하고 있습니다.
Swft에서 JSON을 핸들링하기 위해서 포로토클 Codable을 상속 받아서 구조체를 구현하게 됩니다.
OpenAPI의 JSON은 다양한 형식으로 구성되어 있어서 여러 구조체를 조합해야 하는 경우가 대부분일겁니다.
그래서 중첩 구조체로 구현하여, 각각의 구조체를 하나의 구조체로 구현해봅니다.
카카오의 검색 OpenAPI의 결과
{
"meta": {
"total_count": 6033,
"pageable_count" : 800,
"is_end": false
},
"documents": [
{
"title": "AOA 지민·김용만, 돼지꼬리 맛에 정신혼미 ‘극찬세례’",
"play_time": 185,
"thumbnail": "https://search2.kakaocdn.net/argon/138x78_80_pr/FRkbdWEKr4F",
"url": "http://tv.kakao.com/channel/2653417/cliplink/304487728?playlistId=87634",
"datetime": "2017-05-06T00:36:45+09:00",
"author": "_SBS"
},
...
]
}
카카오의 검색 OpenAPI의 결과 중첩구조체
struct KakaoFind {
var meta : Meta
var documents : [Document]
struct Meta {
var total_count : Int
var pageable_count : Int
var is_end : Bool
}
struct Document {
var title : String
var play_time : Int
var thumbnail : String
var url : String
var datetime : String
var author : String
}
}
위의 중첩구조체를 생성하는 코드 예제
var meta : KakaoFind.Meta = KakaoFind.Meta(total_count : 10, pageable_count : 2, is_end : false)
var documents : [KakaoFind.Document] = []
documents.append(KakaoFind.Document(title : "타이틀1", play_time : 10, thumbnail : "이미지1", url : "https://", datetime : "2022-10-01", author : "제작자1"))
documents.append(KakaoFind.Document(title : "타이틀2", play_time : 20, thumbnail : "이미지2", url : "https://", datetime : "2022-10-02", author : "제작자2"))
var kakao : KakaoFind = KakaoFind(meta : meta, documents : documents)
반응형
'iOS' 카테고리의 다른 글
Xcode 14에서 Main 스토리보드 지정하기 (0) | 2023.02.08 |
---|---|
[iOS 앱 개발] Swift 파일 쓰기 & 읽기 (0) | 2022.10.12 |
[iOS 앱 개발] Swift 함수에 참조 매개변수 전달 (0) | 2022.10.05 |
[iOS 앱 개발] Swift 메소드/생성자 오버로딩(Overloading) (1) | 2022.09.23 |
[iOS 앱 개발] Swift 형 체크(is) (0) | 2022.09.22 |
댓글