RFC 8259로 읽는 JSON 문법의 경계
RFC 8259의 문법 규칙을 평이한 언어로 옮깁니다. 어떤 문자를 직접 쓸 수 있고, 무엇을 이스케이프해야 하며, 명세가 의도적으로 여지를 남긴 곳은 어디인지 정리합니다.
초급약 11분 소요2026-10-30 업데이트
RFC 8259와 ECMA-404에서 출발해 JSON의 문법, 타입, 인코딩, 파싱 경계를 정리합니다. 모든 JSON 작업이 딛고 서는 토대입니다.
6개 문서RFC 8259의 문법 규칙을 평이한 언어로 옮깁니다. 어떤 문자를 직접 쓸 수 있고, 무엇을 이스케이프해야 하며, 명세가 의도적으로 여지를 남긴 곳은 어디인지 정리합니다.
JSON의 타입은 여섯 가지뿐이지만, 그 각각이 조용히 데이터의 모습을 바꿔 놓습니다. 이 글은 숫자, 문자열, null의 함정을 한 번에 정리합니다.
JSON.parse 오류를 행과 문자 위치로 바꾼 뒤 후행 쉼표, 작은따옴표, 주석, 제어 문자, BOM, 잘림이라는 여섯 가지 원인을 차례로 배제합니다.
메모장에서 깨진 텍스트부터 JSON 파일을 여는 세 가지 방법, 수정 후 문제가 없는지 확인하는 법, 거대한 파일이 열리지 않을 때의 대응까지 다룹니다.
JSON.parse 메시지를 기준으로 원인을 조회합니다. Chrome, Firefox, Safari에서 자주 나오는 12가지 오류와 HTML 오류 페이지, 잘림, 이중 파싱까지 다룹니다.
4MB짜리 한 줄 JSON이 "1행 23611열"이라고 알려 주면 아무 도움이 되지 않습니다. 로컬에서 직접 측정한 샘플을 통해 Python, Node, jq가 왜 서로 다른 숫자를 보고하는지, 문자 오프셋으로 어떻게 깨진 바이트에 바로 도달하는지, 문법을 고친 뒤에도 데이터를 조용히 망치는 세 가지 함정을 설명합니다.