에러 문구:
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 형태이므로 배열에 맞게 인덱스별로 나누어 접근을 해야 한다.
다음과 같이 구조체를 배열 형태로 선언 한 뒤 인덱스를 활용하여 접근을 하였다.
실행해 보면 위와 같이 정상적으로 데이터를 받아옴을 확인할 수 있었다.
'[iOS] > [Error]' 카테고리의 다른 글
[iOS][Firebase] Installing BoringSSL-GRPC 멈춤 (0) | 2023.01.17 |
---|---|
[iOS/UIKit]debugDescription: "No value associated with key CodingKeys (1) | 2023.01.10 |
[iOS/UIKit]Swift audio not play (오디오가 재생되지 않음) (0) | 2022.12.27 |
[iOS/UIKit] :this class is not key value coding-compliant for the key (0) | 2022.12.20 |
댓글