[TIL] JavaScript JSON.parse 함수 error (feat. 백슬래시)

염겨레·2022년 7월 6일
0

TIL

목록 보기
1/6

백슬래시(\ 또는 )가 포함된 객체 형태의 문자열을 JSON.parse 메소드의 인자로 전달했더니 오류가 발생하였다.

Uncaught SyntaxError: Unexpected token ... in JSON at position ...

백슬래시를 포함하는 정규표현식(new RegExp("\\"))을 만들 때도 오류가 발생하였다.

Uncaught SyntaxError: Invalid regular expression ...

백슬래시는 escaped 형태로 사용하기 때문에 \\와 같이 백슬래시가 2개 연달아 오는 형태로 자바스크립트 문자열에서 사용하였는데, JSON.parse 메소드나 정규표현식 객체에서 사용하는 문자열 parser는 "de-escaping"할 때 2개의 문자를 제거한 형태로 문자열을 인식하므로 \\\\와 같이 백슬래시 4개를 연달아 사용해야 한다고 한다.

const obj = '{"title": "hello \\\\ world"}';
console.log(JSON.parse(obj));
// {title: 'hello \\ world'}

const re = new RegExp("\\\\");
console.log(re);
// /\\/

출처

  1. https://stackoverflow.com/questions/43769456/json-parsing-error-with-backslash
  2. ⭐️ https://stackoverflow.com/questions/43769456/json-parsing-error-with-backslash
profile
차근차근 나아가는 시나브로 개발자

0개의 댓글