본문으로 건너뛰기
jsonbeautifiers
한국어
V8 Node v24.15.0, V8 13.6.233.17에서 파서를 실행해 확인했습니다.

Unterminated string in JSON at position N (line L column C)

파서가 여는 큰따옴표를 읽고, 짝이 되는 닫는 따옴표를 찾지 못한 채 입력의 끝에 도달했습니다. 보고되는 위치는 문자열이 시작된 자리입니다. 그게 쓸모 있는 위치이기 때문입니다. 없는 닫는 따옴표에는 애초에 위치가 없습니다.

JSON을 붙여넣고 어디서 깨지는지 정확히 확인하기

입력

붙여 넣은 것은 여러분의 브라우저를 떠나지 않습니다. connect-src 허용 목록 덕분에 이는 약속이 아니라 브라우저가 강제하는 보장입니다. 직접 확인하기

실제 원인

어느 쪽이 답인 경우가 많은지, 그 순서대로 정리했습니다.

  1. 01 값 안의 이스케이프되지 않은 큰따옴표

    안쪽의 첫 따옴표가 문자열을 끝내 버리고, 그 뒤에 오는 모든 것이 파서를 혼란에 빠뜨립니다. "내 JSON은 멀쩡해 보이는데 아니다"의 전형입니다.

    깨지는 예

    { "note": "she said "hello"" }

    되는 예

    { "note": "she said \"hello\"" }
  2. 02 끝에 붙은 백슬래시

    백슬래시로 끝나는 윈도우 경로는 닫는 따옴표를 이스케이프해 버려서, 문자열이 문서의 나머지 전체로 흘러 들어갑니다.

    깨지는 예

    { "dir": "C:\logs\" }

    되는 예

    { "dir": "C:\\logs\\" }
  3. 03 정말로 따옴표가 빠짐

    위치만 알면 고치기는 쉽습니다. 행과 열이 바로 그 용도입니다.

  4. 04 문자열 중간에서 파일이 잘림

    끊긴 연결이나, 값 중간에서 문서를 잘라 버린 크기 제한 같은 것들입니다.

다른 런타임에서의 같은 실수

밑바탕의 문제는 똑같고, 다른 건 문구뿐입니다. 동료가 이 중 하나를 들고 왔다면, 그 사람이 보고 있는 건 여러분이 보는 것과 같습니다.

Python Unterminated string starting at: line 1 column 6 (char 5)

자주 묻는 질문

위치가 왜 문자열의 시작을 가리키나요?
거기가 문제를 진단할 수 있는 자리이기 때문입니다. 파서는 입력을 다 써 버렸을 때에야 뭔가 잘못됐다는 걸 아는데, 그건 수천 글자 뒤일 수도 있습니다. 여는 따옴표를 가리키면 어떤 문자열을 봐야 하는지 알 수 있습니다.

지금 고치기

위의 도구에 페이로드를 붙여넣거나, 이 일을 위해 만들어진 도구로 바로 가세요.

열린 문자열 찾기