티스토리 뷰

API를 호출하여 결과를 DB에 수집을 하는데
어느 날부터 수집이 되지 않아 확인을 해보았음.

 


오류파악


API를 호출하여 저장하는 WAS의 LOG를 확인해 보았는데 해당 부분에 아래와 같은 ERROR LOG가 확인되었음.

Unexpected character (n) at position [nember].



관련 LOG는 JSON 파싱 중 문법에 맞지 않은 데이터 형식을 파싱 하려고 할 때 나타나는 에러 메시지로 확인하였고
상세하게는 JSON 데이터에서 number 번째에 문자 "n"으로 시작하는 부근에 구문 오류가 있다는 것이다.

일일이 API 결과 데이터를 눈으로 보는 건 정말 비효율적이기 때문에
해당 API를 브라우저에서 호출하여 결괏값을 JSON validation 사이트를 통하여 검증을 진행하였다.

다행인 건지 검증 결과에서 바로 발견을 할 수 있었음.

{
	"testData": "<div class= "test"/>"
}





원인은 JSON 데이터 값 중에 쌍따옴표(") 가 포함이 되어있어 쌍따옴표(") 묶여 있는 JSON 데이터 값에 올바르지 않은 문법을 나타나게 된 것이었음.

 


조치


조치방법으로 API 응답 시 쌍따옴표(")와 같은 JSON 파싱에 영향을 줄 수 있는 문자에 대해서 이스케이프(\) 처리를 하도록 함.

{
	"testData": "<div class= \"test\"/>"
}





개선된 JSON 데이터 검증을 완료하고 정상적으로 적재되는 것 확인 완료.

기존에 잘 수집하던 데이터가 갑자기 안 되는 원인까지 알아보니 기존에는 이스케이프 처리가 되어 결괏값을 응답하였으나
최근에 API기관의 시스템 작업 이후 이스케이프 처리가 안된 데이터가 응답되었던 것으로 확인.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함