가장 흔한 5가지 JSON 오류와 해결 방법
소개: 왜 JSON 오류가 자주 발생할까?
JSON은 API, 설정, 데이터 교환에 가장 널리 사용되는 데이터 형식 중 하나입니다. 하지만 JSON에서 작은 실수 하나만으로도 앱이 중단되거나 통합이 실패하고, 디버깅이 매우 어려워질 수 있습니다. 여기 가장 흔한 5가지 JSON 오류(실제 예제 포함)와 해결 방법을 소개합니다.
1. 후행 쉼표(Trailing Comma)
JSON 객체나 배열의 마지막 항목 뒤에는 쉼표를 넣을 수 없습니다. 수작업 편집 시 흔히 발생하는 실수입니다.
Before:
{
"name": "Alice",
"age": 30,
}
After:
{
"name": "Alice",
"age": 30
}
팁: 대부분의 코드 편집기와 저희 온라인 JSON 도구는 후행 쉼표를 하이라이트하거나 자동으로 수정해 줍니다.
2. 홑따옴표 vs. 겹따옴표
JSON은 모든 키와 문자열 값에 겹따옴표를 반드시 사용해야 하며, 홑따옴표는 허용하지 않습니다.
Before:
{
'name': 'Bob'
}
After:
{
"name": "Bob"
}
프로그래밍 언어에서 홑따옴표를 허용하더라도 JSON에서는 사용하지 마세요! JSON 문법은 JavaScript나 Python보다 더 엄격합니다.
3. 이스케이프되지 않은 문자
문자열 내부의 줄바꿈, 탭, 따옴표 등 특정 문자는 반드시 역슬래시(\)로 이스케이프 처리해야 합니다.
Before:
{
"note": "This will break: "hello""
}
After:
{
"note": "This will work: \"hello\""
}
예기치 않은 토큰(‘unexpected token’)이나 문자열 종료 오류(‘unterminated string’)가 발생하면 이스케이프 누락을 의심해 보세요.
4. 괄호나 중괄호 누락
모든 여는 괄호나 중괄호는 반드시 대응하는 닫는 괄호가 있어야 합니다. 누락되거나 과도한 괄호는 항상 JSON을 무효로 만듭니다.
Before:
{
"name": "Eve",
"items": [1, 2, 3
}
After:
{
"name": "Eve",
"items": [1, 2, 3]
}
온라인 JSON 검증기를 사용하면 누락되거나 과도한 괄호를 즉시 찾아낼 수 있습니다.
5. 데이터 타입 오류
숫자, 불리언, null 값은 따옴표로 감싸면 안 됩니다. 예를 들어 42는 숫자이지만 "42"는 문자열입니다.
- "true"(문자열)와 true(불리언)는 다릅니다
- "null"(문자열)과 null(값)은 다릅니다
- "42"(문자열)와 42(숫자)는 다릅니다
Before:
{
"age": "42",
"active": "true"
}
After:
{
"age": 42,
"active": true
}
저희 도구가 도와드립니다
JSON을 저희 검증기 또는 수정 도구에 붙여넣으면 이러한 오류를 즉시 찾아내고 고칠 수 있습니다. 도구는 문제 위치를 정확히 알려주며, 많은 일반적인 문제에 대해 자동 수정도 제안합니다.