JSON 복구
깨진 JSON 수정 — 트레일링 콤마, 주석, 작은따옴표, 따옴표 없는 키 — 100% 브라우저에서 처리되며 업로드되지 않습니다
🔒 브라우저에서 실행되며 업로드되지 않습니다.
JSON 복구란 무엇인가요?
JSON 복구는 잘못되었거나 표준에 맞지 않는 JSON 텍스트를 올바르고 보기 좋게 정리된 JSON으로 다시 만들어 줍니다. 트레일링 콤마, // 및 /* */ 주석, 작은따옴표 문자열, 따옴표 없는 키, JavaScript 객체 리터럴 같은 흔한 오류를 고칩니다.
JSON 포매터와 무엇이 다른가요?
포매터는 입력이 이미 올바르다고 가정하고 들여쓰기만 다시 합니다. JSON 복구는 입력이 깨져 있다고 가정하고 먼저 복구한 뒤 정리하므로, 로그·설정 파일·LLM 응답에서 나온 지저분한 JSON도 처리합니다.
JSON이 아닌 것들, 그런데 왜 파일에 들어 있나
JSON은 보기보다 훨씬 작은 언어입니다. 키는 큰따옴표 문자열이어야 하고, 후행 쉼표도 주석도 작은따옴표도 NaN이나 Infinity도 16진수도 앞의 +도 undefined도 없습니다. 그런데 이 전부가 자바스크립트 객체 리터럴에서는 적법합니다. 소스 파일이나 콘솔, 설정에서 복사한 텍스트가 그토록 자주 파싱에 실패하는 이유입니다. 애초에 JSON이 아니라 JSON을 닮은 자바스크립트였던 것이죠. 파이썬은 자기 몫의 비슷한 것들을 더합니다. True·False·None입니다.
복구는 추측이고, 어떤 추측은 위험합니다
따옴표를 고치고 후행 쉼표를 지우는 것은 안전합니다. 의도가 분명하니까요. 닫히지 않은 괄호를 닫는 것은 다릅니다. 전송 중에 잘린 파일은 내용이 빠진 것이고, }를 붙이면 파싱은 되지만 원본보다 조용히 적은 것을 뜻하는 결과가 나옵니다. 가장 날카로운 건 숫자입니다. JSON에는 숫자 타입이 하나뿐이고 파서는 그것을 double로 읽어서, 2⁵³을 넘는 ID는 어떤 복구가 돌기도 전에 끝자리를 잃습니다. 값이 중요하다면 파싱됐다는 사실을 제대로 읽혔다는 뜻으로 믿지 말고 복구 결과를 원본과 비교하세요.
자주 묻는 질문
어떤 종류의 깨진 JSON을 고칠 수 있나요?
트레일링 콤마, // 및 /* */ 주석, 작은따옴표 문자열, 따옴표 없는 키, JavaScript 객체 리터럴을 고칩니다. ```json 코드 펜스도 제거하므로 LLM 응답을 그대로 붙여넣을 수 있습니다.
내 데이터가 업로드되나요?
아니요. 모든 복구는 브라우저 안에서 JSON5로 처리되며 JSON은 기기를 벗어나지 않습니다.
주석이 있는 JSON은 왜 실패하나요?
JSON에는 주석이 없기 때문입니다. // 도 /* */ 도 없습니다. 그건 JSONC나 JSON5로, 여러 도구가 받아들이지만 표준 파서는 받지 않습니다.
잘린 파일을 복구할 수 있나요?
아니요. 잘린 파일은 파싱되지 않으므로, 읽기가 멈춘 행과 열을 알려 주며 거부합니다. 빠진 괄호를 붙이면 파싱은 되지만 원본보다 적은 것을 뜻하게 되므로 붙이지 않습니다. 원본 전체를 다시 받으세요.
큰 숫자가 바뀌었습니다
JSON은 숫자 타입이 하나뿐이고 파서가 64비트 부동소수점으로 읽는데, 정수를 정확히 담는 한계가 2^53입니다. 더 긴 ID는 끝자리를 잃습니다. 해결은 만들어 보내는 쪽에서 문자열로 보내는 것입니다.