• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

fetchData()

23.02.10 14:41 작성 23.02.10 15:46 수정 조회수 462

0

안녕하세요, 선생님.

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

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

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

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

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

답변 2

·

답변을 작성해보세요.

0

Seonghyeon Cho님의 프로필

Seonghyeon Cho

2023.02.11

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

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

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

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

이렇게 쓰시면 될 듯 합니다

 

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

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

감사님의 프로필

감사

질문자

2023.02.11

감사합니다.

0

안녕하세요!

double.parse('-2');

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

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

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

감사합니다.

감사님의 프로필

감사

질문자

2023.02.11

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

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

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