상세 컨텐츠

본문 제목

(안드로이드) JSONException 예외가 발생하는 이유

Android

by choiDev 2019. 1. 10. 11:00

본문

JSONException이란 예외는 다음과 같은 문제가 있을 때 발생한다.

- 제이슨객체를 생성하기 위해 사용한 문자열이 제은슨의 문법적인 구조와 맞지 않을 때

- 제이슨을 구성하는 이름이 null인 경우

- 제이슨 클래스에서 실수나 정수로 변환하여 반환하는 메소드()에서 변환할 수 없는 문자열이 있는 경우

- 실수형에서 사용하는 NaN 또는 POSITIVE_INFINITY 와 같은 상수를 다른 타입에서 사용하는 경우

- 제이슨 배열에서 사용하는 매개변수인 인텍스가 범위를 벗어난경우

- 제이슨객체가 존재하지 않는 경우


제이슨은 자바 콜렉션 클래스의 맵이 변형된 문자열 형태로 제공한다.


제이슨 객체 역시 맵처럼 원칙적으로 같은 레벨에서 같은 이름을 갖는 제이슨 객체를 허용하지 않는다.



제이슨 배열 클래스에서 사용하는 메소드는 제이슨객체 클래스에서 사용하는 메소드와 비슷하다.

제이슨 배열은 단지 같은 객체 이름으로 다수의 값을 보관하기 때문에 인텍스를 사용하여 제이슨의 값을 읽어야 한다는 점에서 차이가 존재한다.

만약 인텍스가 가리키는 개게가 존재하지 않는다면 JSONException이란 예외가 발생한다.


제이슨 객체를 추가하거나 수정하는 과정은 다음과 같은 조건을 따른다.

 - 제이슨 키를 갖고 있는 제이슨 객체가 존재하지 않는다면 추가된다.

 - 제이슨 키를 갖고 있는 제이슨객체가 제이슨배열이라면 추가된ㄴ다.

 - 제이슨 키를 갖고 있는 제이슨객체가 존재하고 제이슨 배열이 아니라면 자동으로 수정이 이루어진다.


관련글 더보기