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

감사님의 프로필 이미지
감사

작성한 질문수

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

fetchData()

해결된 질문

작성

·

581

·

수정됨

0

안녕하세요, 선생님.

StatModel.fromJson(json: jasonData) 로 데이터 값을 받아 올 때...

'에어코리아'에서 제공해주는 데이터의 값이

"-"로 표시된 경우 값을 받아오지 못하고 Error를 던집니다.

예를 들면, no2Value = double.parse(json['no2Value'] ?? '0'),

경우 Double로 파싱해서 받아오거나 값이 없으면 '0'으로 반환해 주고 있는데 "-"값으로 처리된 데이터의 경우 어떻게 처리해 주면 값을 받아 올 수 있을지??? 좋은 방법 있을까요? 이 값 때문에 알 수 없는 다양한 에러가 계속 발생하고 있었습니다......

답변 2

0

쓰시는 api가 강의랑 다른거같네요.

의도하신거라면, double.tryParse(str)로 대체할 수 있습니다 (tryParse dart 문서)

이 메소드는 유효하지 않은 입력이 들어오면, 즉 파싱 실패하면 예외를 던지는 대신 null을 반환합니다

no2Value = double.tryParse(json['no2Value']) ?? 0.0;

이렇게 쓰시면 될 듯 합니다

 

no2Value = double.tryParse(json['no2Value'] ? '0') ?? 0.0

빈 값일때 채우는 로직까지 추가하면 위와 같이 쓰시면 될 듯 합니다

감사님의 프로필 이미지
감사
질문자

감사합니다.

0

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

안녕하세요!

double.parse('-2');

이게 안된다는 말씀이실까요?

위 코드는 잘 작동하기때문에 다른 문제를 착각하신듯합니다.

다시 파악해서 말씀주시면 추가 답변드리도록 할게요!

감사합니다.

감사님의 프로필 이미지
감사
질문자

다음과 같은 데이터입니다. 일부데이터 발췌입니다.

"pm10Value24": "-", "so2Value": "-", "pm10Value": "-", "o3Grade": null, "pm25Flag": "통신장애",

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

"-"라는 값을 파싱하고싶다면 -일경우의 if문 분기를 해주시면 됩니다. 또는 pm25Flag에 "통신장애"가 들어온다면 아예 다른 반환값을 만들어내는 방법도 있습니다.

감사님의 프로필 이미지
감사

작성한 질문수

질문하기