기본 패턴
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