JSON기초와 문법

string, number, escaping

큰따옴표 string, escape 규칙, 숫자의 선행 0 금지, NaN과 Infinity 불가 같은 JSON 기본 문법 함정을 정리합니다.

마지막 수정 2026년 3월 20일

기본 패턴

json
{
  "path": "C:\\temp\\data.json",
  "quote": "\"json\"",
  "count": 42,
  "ratio": 3.14,
  "exp": 1e6
}

설명

  • JSON string은 반드시 큰따옴표로 감싸야 합니다. 작은따옴표 문자열은 JSON 문법이 아닙니다.
  • 큰따옴표, 역슬래시, 제어 문자 같은 일부 문자는 escape가 필요합니다. 유니코드는 \uXXXX 형태로도 표현할 수 있습니다.
  • 숫자는 10진수로 표현하며 선행 0이 허용되지 않습니다. 그래서 01은 JSON 숫자가 아닙니다.
  • NaN, Infinity, -Infinity는 JSON number가 아닙니다. 이런 값이 필요하면 string으로 보내거나 별도 규칙을 정해야 합니다.
  • 문자열과 숫자 규칙은 언어별 object literal보다 더 엄격한 편이므로, "언어에서는 되는데 JSON에서는 안 되는" 차이를 자주 만듭니다.

짧은 예제

text
유효
"hello"
123
0.5
1e3

무효
'hello'
01
NaN
Infinity

빠른 정리

항목규칙
문자열 구분큰따옴표만 허용
escape 필요" , \ , 제어 문자
숫자10진수, 선행 0 금지
특수 수치NaN, Infinity 불가

주의할 점

JSON 문법 에러의 상당수는 사실상 문자열과 숫자 표기에서 나옵니다. "작은따옴표", "선행 0", "NaN/Infinity"만 먼저 의심해도 파싱 오류를 빠르게 줄일 수 있습니다.

참고 링크

2 sources