본문 바로가기
[iOS]/[Error]

[iOS/UIKit] JSON Array 파싱하기

by Yong9_9 2023. 1. 11.

에러 문구:

typeMismatch(Swift.Dictionary<Swift.String, Any>, 
Swift.DecodingError.Context(codingPath: [], debugDescription: 
"Expected to decode Dictionary<String, Any> but found an array instead.", 
underlyingError: nil))

문제발생:

아래 사진이 Codable 하고자 하는 JSON인데 지금까지 봐왔던 JSON과 달리 배열 형태로 나타나 있다.

위 데이터를 파싱 하기 위해 Codable 하기 위해 우선 구조체를 작성하였다.

 

 

그리고 데이터를 파싱하기 위한 함수를 작성하였는데 실행하여 데이터를 요청하니

위와 같은 에러가 발생하며 데이터를 받아내지 못했다.

 

해결방법:

JSON Array 형태이므로 배열에 맞게 인덱스별로 나누어 접근을 해야 한다.

 

다음과 같이 구조체를 배열 형태로 선언 한 뒤 인덱스를 활용하여 접근을 하였다.

실행해 보면 위와 같이 정상적으로 데이터를 받아옴을 확인할 수 있었다.

댓글