인프런 커뮤니티 질문&답변

JY Hwang님의 프로필 이미지
JY Hwang

작성한 질문수

[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!

JSON 반환값을 StatModel로 변경하기

해결이 안되는 에러 질문드려요.

작성

·

43

0

final rawItemsList = response.data['response']['body']['items'] as
List<Map<String, dynamic>>;

해당 코드에서
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast

#0 StatRepository.fetchData (package:microdust_study/repository/stat_repository.dart:26:69)

<asynchronous suspension>

flutter: type 'List<dynamic>' is not a subtype of type 'List<Map<String, dynamic>>' in type cast


이 에러가 계속 발생합니다....

답변 2

0

코드팩토리님의 프로필 이미지
코드팩토리
지식공유자

안녕하세요!

response.data['response']['body']['items'] <- 이 부분을 출력해보시고 타입이 일치 하는지 보여주세요!

감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. JY Hwang님.

유사한 문제에 대한 해결 답변을 확인해본 결과, type casting 에러와 관련된 비슷한 질문과 답변을 찾았습니다. 아래 링크들을 참고해보세요:

이 문제는 주로 API 응답에서 예상하지 못한 데이터 타입이 반환될 때 발생합니다. response.data['response']['body']['items']List<Map<String, dynamic>> 타입이라기보다 List<dynamic>이 반환되는 상황입니다. 아래와 같이 디버깅 해보시길 권장합니다:

final rawItemsList = response.data['response']['body']['items'];

if (rawItemsList is List) {
  List<Map<String, dynamic>> items = rawItemsList.map((item) => 
    item as Map<String, dynamic>).toList();
}

위 코드를 통해 응답 데이터가 의도한 타입으로 변환되었는지를 확인할 수 있으며, 이런 방식으로 에러를 피할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

JY Hwang님의 프로필 이미지
JY Hwang

작성한 질문수

질문하기