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

김상원님의 프로필 이미지

작성한 질문수

Flutter 응용 - 공공 API를 활용한 앱 만들기 (MVVM 패턴)

오류좀 해결해주세요

작성

·

11K

0

섹션 0 까지 했는데 

Unhandled Exception: type 'int' is not a subtype of type 'String' 

이런 오류가 나옵니다 

답변 6

0

오준석님의 프로필 이미지
오준석
지식공유자

code는 String 으로 들어오고 있는데 이상하네요.

그래도 의심을 해 본다면 일부 데이터만 int로 보낼 수도 있습니다.

서버에서 보내주는 데이터를 절대적으로 믿으면 안 되거든요.

그렇다는 것을 가정하면 kimsw509님처럼 var code 로 했을 경우에는 타입 추론이기 때문에 String이나 int여도 값을 받는다고 보면 됩니다.

아니면 이 예제에서 code 값을 쓰지 않기 때문에 code를 파싱하는 부분을 모두 제거해도 될 것 같습니다.

0

김상원님의 프로필 이미지
김상원
질문자

저는 일단 code를 String code 에서 var code 로 잠깐 바꿔서 쓰니까 제대로 돌아가고 있습니다. 근데 왜 int code로 하면 code가 String이고 int 타입은 받을수 없습니다 라고 뜨고 String code로 하면 code가 int 형식이고 String 타입을 받을수 없습니다. 라고 뜨는지 모르겠습니다. 그래서  생각해 본건데 json parse 하면서 뭔가 문제가 있지 않나 조심히 생각해 봅니다.

0

네 강의데로 똑같이 진행했습니다.

일주일 전에는 됐는데...오늘 해보니까 안됩니다.

확인 부탁드립니다.

0

오준석님의 프로필 이미지
오준석
지식공유자

code 변수 선언이 String code 로 되어 있나요?

0

E/flutter ( 6307): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)]
Unhandled Exception: type 'int' is not a subtype of type 'String' E/flutter ( 6307): #0 new Store.fromJson (package:fluttermask03/model/store.dart:25:5)

아래 클래스 이부분에서 에러납니다.
 code = json['code'];





class
Store {
...
Store.fromJson(Map<String, dynamic> json) {
code = json['code'];

}


0

오준석님의 프로필 이미지
오준석
지식공유자

에러난 부분의 코드가 보이지 않아 추측하기로는

String 값을 int 형 변수에 대입하려고 했기 때문일 것으로 추측됩니다.

해당 에러가 발생하는 라인을 보면 아마도 'String 변수 = int 값' 형태의 코드가 있을 겁니다.

'int 변수 = int 값' 또는 'num 변수 = int 값' 형태로 타입을 맞춰 주시면 됩니다.