미세먼지 Json 값 null일경우 에러
897
3 asked
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
코드팩토리 디스코드
https://bit.ly/3HzRzUM
Flutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
안녕하세요 !!
궁금한게 있어서 질문 드립니다
지역 변경후 값 받아오는 곳에서
"jeonbuk":null
이값으로 받아오는데
jeonbuk = double.parse(json['jeonbuk'] ?? '0'),null처리 한곳에
'0' 으로 변환 해주면 에러가 나오고
Bad state: No element
See also: https://flutter.dev/docs/testing/errors
jeonbuk = double.parse(json['jeonbuk'] ?? '0.01' ),'0' 이상 값으로 변환하면 정상적으로 나오는데
이유가 궁금합니다 .
Answer 3
0
data_utils.dart 의 getStatusFromItemCodeAndValue 함수 수정이 필요합니다.
stat_model.dart에서 ‘전북’이 null이면, 0으로 처리가 되어 있음. 그런데 data_utils.dart의 아래 부분의 'return status.minFineDust < value'를 보면 minXX의 최소값이 0이기에 '0<0'이 되어서 모두 false가 됩니다.
'return status.minFineDust < value'를 ''return status.minFineDust <= value'로 value보다 '작거나 같음'으로 변경하여 임시 방편으로 오류 처리 가능합니다.
(실제 미세먼지 서비스라면) 미세먼지 공공데이터가 null을 리턴하는 경우 '미세먼지 데이터 없음'으로 표시 하거나, '가장 최근에 정상적으로 수신 값'을 반영해주는 방법이 있겠습니다.
static StatusModel getStatusFromItemCodeAndValue({
required double value,
required ItemCode itemCode,
}) {
return statusLevel.where((status) {
if (itemCode == ItemCode.PM10) {
return status.minFineDust < value;
} else if (itemCode == ItemCode.PM25) {
return status.minUltraFineDust < value;
} else if (itemCode == ItemCode.CO) {
return status.minCO < value;
} else if (itemCode == ItemCode.O3) {
return status.minO3 < value;
} else if (itemCode == ItemCode.NO2) {
return status.minNO2 < value;
} else if (itemCode == ItemCode.SO2) {
return status.minSO2 < value;
} else {
throw Exception('알수없는 ItemCode입니다.');
}
}).last;
}
0
안녕하세요!
질문주신 내용만으로 봤을때는 의심하고계신 부분의 문제가 아닌 것 같습니다.
void main() {
print(double.parse('0'));
}
위 코드를 실행하면 0이 잘 출력됩니다.
에러 위치를 조금 더 정확히 파악해보시고 추가 질문 부탁드립니다!
감사합니다.
video_call 플러그인 설치후 에러 발생
0
40
1
SDK 안드로이드 설치 질문!
0
55
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
90
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
63
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
51
1
플레이스토어
0
57
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
52
1
가이드라인 질문
0
55
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
75
1
emulator 실행 오류
0
91
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
68
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
41
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
51
1
video_call 플러그인 설치시 에러문제
0
61
1
children 안의 if 문에서 { } 못쓰는 이유?
0
45
1
이렇게 오류가 떠요
0
60
1
AppBar 사용했는데
0
60
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
54
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
61
1
Video Player 프로젝트에 대한 추가 질문
0
50
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
38
1
geolocator 오류때문에 개발진행이 불가능입니다
0
59
1
API 관련 이슈
0
82
2
VoidCallback 뒤에 null 연산자 표기에 관한 질문
0
41
1

