JSON 유효성 검사기
JSON 문법을 검사하고 오류가 있으면 정확한 위치와 원인을 알려줍니다.
JSON 유효성 검사기 안내
JSON 유효성 검사란?
JSON(JavaScript Object Notation) 유효성 검사는 JSON 데이터의 문법이 표준 규격에 맞는지 확인하는 과정입니다. JSON은 웹 API 통신, 설정 파일, 데이터 저장 등에서 가장 널리 사용되는 데이터 교환 형식입니다. 아무리 작은 문법 오류라도 파싱에 실패할 수 있어서, 개발 과정에서 JSON 유효성을 미리 확인하는 것이 중요합니다. 이 도구는 입력된 JSON의 문법을 검사하고, 오류가 있으면 정확한 위치와 원인을 알려줍니다. 쉼표 하나, 따옴표 하나의 차이로 API 요청이 실패하거나 애플리케이션이 비정상 종료되는 일이 실제 개발 현장에서 빈번하게 발생합니다. 사전에 JSON을 검증하면 이런 런타임 오류를 방지할 수 있고, 문제 발생 시 정확한 원인을 파악하는 시간을 크게 줄일 수 있습니다. 모든 검사가 브라우저에서 이루어지므로 민감한 데이터도 안심하고 검증할 수 있습니다.
JSON에서 자주 나는 오류
JSON 문법은 단순하지만 그만큼 엄격합니다. 오류의 대부분이 아래 다섯 가지 중 하나입니다.
- 마지막 쉼표 —
[1, 2, 3,]처럼 끝에 남은 쉼표. 자바스크립트는 허용하지만 JSON은 오류입니다. 항목을 지우다가 가장 많이 생깁니다. - 작은따옴표 — JSON 문자열은 반드시 큰따옴표입니다.
{'a': 1}은 유효하지 않습니다. - 따옴표 없는 키 —
{a: 1}형태는 자바스크립트 객체이지 JSON이 아닙니다. - 주석 — JSON에는 주석 문법이 없습니다.
//를 넣으면 오류입니다. - 이스케이프 누락 — 문자열 안의 큰따옴표와 백슬래시, 줄바꿈은 이스케이프해야 합니다.
오류 위치를 읽는 요령
파서가 알려주는 위치는 문제를 발견한 지점이지 원인이 있는 지점이 아닌 경우가 많습니다. 닫는 괄호가 빠졌다면 파일 맨 끝에서 오류가 나지만 실제로 고쳐야 할 곳은 중간 어딘가입니다.
그래서 지목된 줄에 이상이 없다면 그 앞을 거슬러 확인하세요. 특히 바로 앞줄의 쉼표 유무를 먼저 보는 것이 효율적입니다. 들여쓰기를 정렬해 두면 괄호 짝이 눈에 들어와 원인을 찾기 쉬워집니다.
문법이 맞아도 안심할 수 없는 것
이 도구는 문법 검사를 합니다. 문법이 맞아도 데이터가 기대한 모양인지는 별개입니다. 필수 항목이 빠졌거나 숫자여야 할 값이 문자열로 들어와 있어도 문법상으로는 유효합니다.
데이터 구조까지 검증하려면 JSON 스키마를 정의해 검사하는 방법이 있습니다. API 응답을 다룬다면 문법 검증은 이 도구로 빠르게 확인하고, 구조 검증은 코드에서 처리하는 식으로 나누면 됩니다.
또 하나 주의할 점은 큰 숫자입니다. JSON에는 정수 크기 제한이 없지만 자바스크립트로 읽으면 안전 범위를 넘는 값의 뒷자리가 손실됩니다. 긴 ID 값은 문자열로 주고받는 것이 안전합니다.
자주 묻는 질문
주석을 쓸 방법이 없나요?
표준 JSON에는 없습니다. 설정 파일에 설명이 필요하다면 _comment 같은 키를 넣고 읽는 쪽에서 무시하도록 하거나, 주석을 지원하는 YAML로 관리하는 방법이 있습니다.
한글이 \uXXXX로 나옵니다
유효한 표기이며 읽을 때 원래 글자로 복원됩니다. 다만 사람이 확인하기 불편하니, 생성하는 쪽에서 유니코드를 그대로 출력하도록 설정하면 됩니다.
데이터가 전송되나요?
전송되지 않습니다. 검사가 브라우저 안에서만 이루어집니다.
작동 원리
JSON 유효성 검사기는 JavaScript 엔진의 JSON.parse() 메서드를 활용해 입력된 텍스트를 파싱합니다. 파싱 과정에서 오류가 발생하면 브라우저가 반환하는 에러 메시지를 분석해 문제가 있는 줄 번호와 열 위치를 정확히 추출합니다. 파싱에 성공한 경우에는 재귀적으로 객체 트리를 순회하면서 최대 중첩 깊이, 총 키 수, 배열 수, 객체 수 등 구조 통계를 계산합니다. 이 통계 정보는 데이터의 복잡도를 한눈에 파악하는 데 유용합니다. 포맷팅 기능은 JSON.stringify()에 들여쓰기 값을 전달해 보기 좋은 형태로 변환하고, 압축 기능은 들여쓰기를 제거해 최소 크기의 문자열을 생성합니다. 파일 드래그 앤 드롭은 File API와 FileReader를 사용해 로컬 파일을 읽어들이며, 전체 과정에서 데이터가 서버로 전송되는 일은 없습니다.
이런 도구도 추천
- JSON 포매터 - JSON 정렬 및 검증
- JSON ↔ CSV 변환 - JSON과 CSV 상호 변환
- JWT 생성기 - JWT 토큰 생성