Graceful Light

JSON.parse unexpected type Error

2016-12-22


database에 이미 json으로 저장된 데이터를 가져와 JSON.parse 메소드로 JSON 데이터를 파싱하는 중에 값이 string인데도 오류가 나는 경우가 있다.

로그를 확인해보면

1
{"data":"[{"name":"brendaniel"},{"name","daniel"}]"}

[] 배열 기호 앞뒤로 따움표가 들어가 있다.
이중 object가 있다면 선언문 {} 앞뒤로 따움표가 들어가 파싱 오류가 난다.

원인

jQuery.ajax의 dataType을 json으로 설정해 데이터를 받는데, 이미 json형태의 string이 넘어와 두번 치환이 된 것 같다.

다시 json을 인식할 수 있게 치환해보자

소스

설명

해당 함수로 오류가 나는 json string을 치환 후에 다시 JSON.parse를 실행하면 된다.

여담

정규식을 활용해 replace 중첩을 피하게 짤 수 있을 것 같은데…

🍺

Buy me a beer 🍗

공유하려면 QR코드를 스캔해주세요