버그 사항 : json item의 value가 없다? -> JSONException 발생
수정 : item.getString 을 item.optString 으로 바꾼다.
json 파싱을 한참 하다가 특정 item에는 값이 빠져있는 경우가 있습니다.
바로 아래와 같은 경우죠.
무림약국과 미래온누리약국을 비교해보면,
무림약국은 일반적인 json item과 다르게 remain_stat과 stock_at이 없는 상태입니다.
그 결과 파싱을 진행하다보면
org.json.JSONException: No value for remain_stat~~
org.json.JSONException: No value for stock_at~~ 이 나오게 되면 파싱은 중간에 끊기게 됩니다.
이럴 경우 item.getString 보다는 item.optString을 통해서 값을 받아와주시면 됩니다.
item.getString("lat"),
item.getString("lng"),
item.getString("addr"),
item.getString("code"),
item.getString("created_at"),
item.getString("name"),
item.optString("remain_stat","no value"),
item.optString("stock_at","no value"),
item.getString("type")
여기서 item.optString( string1 , string2 ) 에 설명하자면
string1으로 name을 조회했을때 없다면 string2로 값을 넣겠다 라는 의미입니다.
결국 해당 item은 no value 라는 초기값을 가짐으로써 org.json.JSONException 를 피할 수 있게 됩니다.
'개발 > 안드로이드' 카테고리의 다른 글
[안드로이드] 네이버 길찾기 api 파싱해서 구글맵 폴리라인 찍기 (1) | 2020.05.11 |
---|---|
[안드로이드] timepickerdialog spinner 모드로 변경하는 법 (0) | 2020.03.23 |
[안드로이드] 공공데이터 (공적마스크_코로나) api 받아서 구글맵에 마커찍기 (2) | 2020.03.15 |
[안드로이드] 앱 초기 로딩시 흰 화면 없애기(인트로 페이지 공백없애기) (2) | 2020.03.12 |
[안드로이드] findViewById를 없애는 갓기능 : viewbinding (0) | 2020.03.11 |
댓글