멜팅비의 개발 공부

[iOS/swift] JsonString을 Object 배열로 변환하기 본문

개발 공부/[iOS 개발]

[iOS/swift] JsonString을 Object 배열로 변환하기

멜팅비 2021. 6. 21. 20:29
반응형

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가 들어가게 된다.

반응형
Comments