JSON 포맷터 & 유효성 검사기 — 무료 온라인 도구
JSON을 즉시 포맷, 검증, 축소합니다. 구문 강조, 줄 번호가 포함된 오류 탐지, 통계 — 모두 100% 클라이언트 사이드.
// 포맷된 JSON이 여기에 표시됩니다
JSON이란?
JSON(JavaScript Object Notation)은 JavaScript의 객체 리터럴 구문에서 파생된 경량 텍스트 기반 데이터 교환 형식입니다. RFC 8259에 정의되어 있으며 키-값 쌍(객체)과 정렬된 목록(배열)으로 데이터를 표현합니다. 거의 모든 최신 프로그래밍 언어에 내장 JSON 파서가 포함되어 있어 REST API, 설정 파일, 데이터 직렬화의 지배적인 형식입니다.
JSON은 6개의 원시 타입을 지원합니다: string, number, boolean(true/false), null, object(중괄호), array(대괄호). 모든 문자열과 객체 키는 반드시 큰따옴표로 감싸야 합니다 — 작은따옴표는 유효한 JSON이 아닙니다.
일반적인 JSON 구문 오류
JSON 사양은 의도적으로 엄격하므로 작은 실수도 전체 파싱 실패를 유발합니다. 유효하지 않은 JSON의 가장 빈번한 원인은 다음과 같습니다:
- 후행 쉼표: 객체나 배열의 마지막 요소 뒤에 오는 쉼표 —
{"a": 1,}— 는 JSON에서 허용되지 않습니다. JavaScript 객체 리터럴과 많은 언어에서는 유효하지만 JSON 사양에서는 명시적으로 금지됩니다. - 작은따옴표 문자열: JSON은 모든 문자열과 키에 큰따옴표를 요구합니다.
{'key': 'value'}는 유효하지 않으며{"key": "value"}여야 합니다. - 인용되지 않은 키: 객체 키는 항상 따옴표로 감싼 문자열이어야 합니다.
{name: "Alice"}는 유효하지 않은 JavaScript 스타일 약식이며 JSON은{"name": "Alice"}를 요구합니다. - JavaScript 주석: JSON은
// 한 줄또는/* 블록 */주석을 지원하지 않습니다. 설정 파일에 주석이 필요하다면 JSONC 또는 JSON5를 고려하되 전용 파서가 필요합니다. - Undefined 값:
undefined는 JavaScript 개념이며 JSON에는 해당 표현이 없습니다.undefined값을 가진 키는JSON.stringify()에 의해 자동으로 제거됩니다. - 이스케이프되지 않은 특수 문자: 문자열 내부의 특정 문자는 이스케이프해야 합니다:
\"(큰따옴표),\\(백슬래시),\n(줄바꿈),\t(탭). 문자열 리터럴 내의 원시 줄바꿈은 허용되지 않습니다.
JavaScript의 JSON.parse와 JSON.stringify
JavaScript는 JSON을 다루기 위한 두 가지 내장 메서드를 제공합니다:
// JSON 문자열을 JavaScript 객체로 파싱 const data = JSON.parse('{"name":"Alice","age":30}'); console.log(data.name); // "Alice" // JavaScript 객체를 JSON 문자열로 변환 const json = JSON.stringify(data, null, 2); // 2칸 들여쓰기 // 항상 try/catch로 유효성 검증 try { const parsed = JSON.parse(userInput); } catch (e) { console.error('유효하지 않은 JSON:', e.message); } // Replacer 함수로 키 필터링 const filtered = JSON.stringify(data, ['name']); // '{"name":"Alice"}'
자주 묻는 질문
JSON이란 무엇이며 왜 사용됩니까?
JSON(JavaScript Object Notation)은 JavaScript 객체 구문에서 파생된 경량 텍스트 기반 데이터 교환 형식입니다. 키-값 쌍과 정렬된 목록을 사용하여 사람이 읽기 쉽고 기계가 파싱하기 쉽습니다. 거의 모든 프로그래밍 언어에 내장 JSON 파서가 있어 REST API, 설정 파일, 데이터 저장의 지배적인 형식입니다.
온라인에서 JSON을 어떻게 검증합니까?
위의 입력 필드에 JSON을 붙여넣고 검증 버튼을 클릭하세요. 이 도구는 JSON.parse()를 사용하여 JSON을 확인하고 유효하지 않은 경우 줄과 열 번호와 함께 정확한 구문 오류를 보고합니다. 일반적인 문제에는 후행 쉼표, 작은따옴표 문자열, 인용되지 않은 키, JavaScript 주석 등이 있으며 이 중 어느 것도 유효한 JSON이 아닙니다.
JSON과 XML의 차이점은 무엇입니까?
JSON은 일반적으로 XML보다 더 간결하고 파싱이 빠르며 읽기 쉽습니다. XML은 자세한 여는/닫는 태그를 사용하며 속성, 네임스페이스, 주석을 지원합니다. JSON은 대부분의 언어에 있는 데이터 구조(객체와 배열)에 직접 매핑됩니다. JSON은 REST API에서 XML을 대체했지만 XML은 SOAP 서비스, 문서 형식(SVG, DOCX), 엔터프라이즈 시스템에서 여전히 사용됩니다.
JSON에서 후행 쉼표가 허용되지 않는 이유는 무엇입니까?
후행 쉼표(객체나 배열의 마지막 항목 뒤에 오는 쉼표)는 JSON 사양(RFC 8259)에서 유효하지 않습니다. 이는 파서를 단순화하기 위한 엄격한 설계 결정입니다. JavaScript 자체는 배열과 객체 리터럴에서 후행 쉼표를 허용하지만 JSON.parse()는 SyntaxError를 발생시킵니다. 더 관대한 형식이 필요하다면 JSON5 또는 JSONC(주석이 있는 JSON)를 고려하되 전용 파서가 필요합니다.
관련 개발자 도구
- Base64 인코더 / 디코더 — URL-safe 변형을 포함하여 Base64 문자열을 즉시 인코딩 및 디코딩
- URL 인코더 / 디코더 — URL 컴포넌트와 쿼리 문자열을 퍼센트 인코딩 및 디코딩
- JWT 디코더 및 검사기 — JWT 토큰 디코딩, 클레임 및 만료 카운트다운 검사
- 정규식 테스터 — 실시간 매칭 강조와 캡처 그룹 분석으로 정규식 테스트