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 |
Tags
- SWIFT
- imagepicker
- viewpager2
- 실행지연
- ayncAfter
- web
- Kotlin
- MemoList
- ViewModel
- DispatchTouchEvent
- IOS
- progressbar
- aab
- MotionEvent
- CalendarView
- RecyclerView
- Android
- UIPickerView
- 스터디
- CSS
- HTML
- InAppPurchase
- RxJava
- retrofit2
- SplashFragment
- javascript
- Alamofire
- Dropdown
- 개발
- dispatchQueue
Archives
- Today
- Total
멜팅비의 개발 공부
[iOS/swift] JsonString을 Object 배열로 변환하기 본문
반응형
Alamofire를 통해서 네트워크 통신을 할 때 다양한 Response가 내려오는데 Array형식으로 내려오는 데이터를 처리하는 방법을 정리하려고 한다.
{
"result": [
{
"name": "Kim:,
"age": 10
},
{
"name": "Lee":,
"age": 10
}
}
개발을 하다 보면 위와 같은 형식의 Json ResponseBody가 내려오는 경우가 있다.
이럴 때 name과 age를 갖는 Person 구조체를 만들어서 Array<Person>으로 변환하여 데이터를 받아 처리하면 좋다.
struct Response<T>: Codable {
let result: [T]
}
struct Person: Codable {
let name: String
let age: Int
}
제너릭을 이용해서 어떤 타입이 들어와도 사용이 가능하도록 Response 구조체를 정의한다.
JsonString을 Data 형식으로 만들어준 뒤 JsonDecoder를 통해 변환하면 Response 데이터 처리를 쉽게 할 수 있다.
let jsonData = jsonString.data(using: .utf8)
if let json = try? decoder.decode(Response<Person>.self, from: josnData!) {
let result = json.result
}
이렇게 하면 result에 Person Array가 들어가게 된다.
반응형
'개발 공부 > [iOS 개발]' 카테고리의 다른 글
[iOS/Swift] UIButton에 이미지와 텍스트 vertical align (1) | 2021.11.17 |
---|---|
[iOS/swift] UIImagePickerController를 활용해서 사진첩 사진 가져오기 (0) | 2021.06.21 |
[iOS-Swift] UIView의 원하는 곳에만 round를 주고싶을 때! (0) | 2021.05.28 |
[iOS-Swift] UIImage 색상 코드에서 변경하기 (0) | 2021.05.28 |
[iOS-Swift] 실행 지연/1초 후 실행시키기 (DispatchQueue) (0) | 2021.02.23 |
Comments