흔히 많이들 하시는 방식인.. http를 통하여 json 데이터 읽어와서 string을 JSONObject로 변환해주는 방식입니다.

 

그런데 JSON 데이터에 문자열을 감싸는 부분에 백슬러쉬(\)가 포함되면..

String을 JSONObject로 생성해줄때에 여지없이 아래와 같은 에러가 뜹니다.

(jsonObj = new JSONObject(스트링);) 

 

org.json.JSONException: Expected literal value at character.. 어쩌고저쩌고..

 

예를 들면 이런 식입니다..

 

(1)

{
"BANNER": {
"BANNER_LINK_URL": "이미지 링크 URL",
.

.

.

 

(2)

{
\"BANNER\": {
\"BANNER_LINK_IMG\": \"이미지 링크 URL\",
.

.

.

 

 

1번은 정상 파싱되고, 2번처럼 백슬러쉬를 감싸면 에러가 발생되는군요..

그런데 더 이해가안되는건.. JSON 데이터를 String 변수에 하드코딩해서 로컬데이터로 테스트해보면 백슬러쉬가 포함되도 잘 동작한다는 점입니다.

 

제가 이런 질문을 올리는 것은.. 현재 개발 중인 앱에서 JSON을 연동하면..

허니콤3.2에서는 JSON 데이터에 백슬러쉬가 있던없던 상관없는데,, 허니콤3.1버전에서는 파싱에러가 떠서.. 스트링을 JSONObject로 생성하는 과정에서 에러가 나기 때문입니다..

 

혹시 왜 그런지 이유를 아시는 고수분 계신가요??