웹서버 iis (wcf 서버)와 안드로이드가 통신하는 앱을 만들고 있다.
근데 json이 이상한 데이터 형식으로 넘어오는 것이었다.
큰따옴표가 붙어서 왔다.
({\"Table\":[{\"Column1\":\"OK\"}],\"Table1\":...) 이런식
찾아보니 iis에서 json값을 줄때, "따옴표를 \" 이런식으로 값을 줬다.
데이터 형식을 이스케이프(escape)로 준거였다.
wcf서버에서 이스케이프를 풀려고 갖은 방법을 해봐도 안풀렸다.
(이유는 wcf서버에서 이스케이프 형식을 강제해놓은 것 같다)
서버에서 이스케이프를 해독하여 보내는 방법은 포기하고,
안드로이드로 넘어와서 이스케이프를 해독(unescape) 해주려고 방법을 찾았다.
많은 시도 끝에 결국 아파치 라이브러리에 StringEscapeUtils 클래스의 unescapeJava 메소드를 써주니 해결됐다.
[적용방법]
1. gradle 에 아파치 라이브러리 추가. ( implementation 'org.apache.commons:commons-lang3:3.6' 추가)
implementation 'org.apache.commons:commons-lang3:3.6'
2. StringEscapeUtils 클래스의 unescapeJava 메소드를 사용한다.
String test = StringEscapeUtils.unescapeJava(escape);
//escape 는 이스케이프 문자열.
[적용후]
이제 json이 제대로 출력된다.