JSON기초와 문법

Common syntax errors

trailing comma, comment, 작은따옴표, 따옴표 없는 key처럼 자주 보이는 JSON 문법 오류와 비표준 확장 문법과의 혼동을 정리합니다.

마지막 수정 2026년 3월 20일

기본 패턴

text
흔한 오류
- { "a": 1, }          // trailing comma
- { a: 1 }             // 따옴표 없는 key
- { "a": 'x' }         // 작은따옴표 문자열
- { "a": 1 } // note   // 주석

설명

  • 표준 JSON은 trailing comma를 허용하지 않습니다. 마지막 항목 뒤에 쉼표를 남기면 오류가 납니다.
  • key는 항상 문자열이므로 따옴표 없는 식별자 표기는 허용되지 않습니다.
  • 주석 문법도 JSON 표준에 없습니다. 그래서 "설정 파일이니까 주석쯤은 되겠지"라는 기대가 자주 깨집니다.
  • RFC 8259는 parser가 확장 문법을 받아들일 수도 있다고 말하지만, generator는 표준 문법을 엄격히 따라야 합니다.
  • 즉 어떤 도구가 비표준 JSON을 읽어 준다고 해서, 그 형식을 JSON 자체로 오해하면 다른 시스템과 연결될 때 문제가 생깁니다.

짧은 예제

js
JSON.parse("{'foo': 1}");
// SyntaxError

JSON.parse('{"foo": 1}');
// OK

빠른 정리

흔한 오류이유
trailing comma표준 JSON 문법 아님
주석JSON에는 주석 규칙이 없음
작은따옴표 문자열문자열은 큰따옴표만 허용
따옴표 없는 keykey는 string이어야 함

주의할 점

JSON5, HJSON, 일부 설정 파서처럼 확장 문법을 읽는 도구는 꽤 많습니다. 하지만 그건 "JSON과 비슷한 형식"을 읽는 것이지 표준 JSON을 넓힌 것이 아닙니다. 시스템 간 교환용이면 항상 표준 JSON으로 맞추는 편이 안전합니다.

참고 링크

2 sources