JSON 포맷터 (JSON Formatter)
브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.
JSON이란 무엇인가요?
JSON(JavaScript Object Notation)은 사람이 읽고 쓰기 쉬우며 기계가 파싱하고 생성하기 쉬운 경량 텍스트 기반 데이터 교환 형식입니다. RFC 8259와 ECMA-404로 표준화된 JSON은 사실상 모든 프로그래밍 언어, API, 웹 서비스에서 데이터 교환의 보편적 표준이 되었습니다.
JSON의 창시자 Douglas Crockford는 json.org에 "JSON의 설계 목표는 최소화되고, 이식 가능하며, 텍스트 기반이고, JavaScript의 부분집합이 되는 것이었다"고 썼습니다. 바로 이 의도적인 단순함 덕분에 JSON은 XML을 제치고 현대 웹의 공용어가 되었습니다.
JSON은 여섯 가지 데이터 타입을 지원합니다. 문자열(큰따옴표로 감싼), 숫자, 불리언(true/false), null, 배열(순서 있는 목록), 객체(키-값 쌍)입니다(RFC 8259). 단순함과 가독성 덕분에 JSON은 대부분의 현대 웹 애플리케이션, REST API, 설정 파일에서 XML보다 선호되는 형식이 되었습니다. JSON은 API에서 가장 많이 사용되는 데이터 형식으로, 개발자의 86%가 사용합니다(Postman State of API Report 2023).
JSON 포맷터는 원본이나 최소화된 JSON을 잘 구조화되고 들여쓰기된 형식으로 변환하여 데이터 계층을 한눈에 볼 수 있게 합니다. API 응답 디버깅, 설정 파일 검사, 복잡한 중첩 데이터 구조 이해에 필수적인 기능입니다. JSON은 XML과 달리 주석, 속성, 네임스페이스를 지원하지 않으며 순수하게 데이터 표현에 집중합니다(ECMA-404).
이 도구는 전적으로 브라우저 내부에서 실행되므로 JSON 데이터가 기기를 벗어나지 않습니다. 서버 기반 포맷터와 달리 업로드, 로깅, 데이터 보존이 없습니다. API 키, 프로덕션 설정, 내부 데이터와 함께 안전하게 사용할 수 있습니다.
JSON은 다른 개발자 도구와 함께 자주 사용됩니다. API를 디버깅할 때는 Base64로 인코딩된 JSON 페이로드(JWT 토큰 등)를 디코딩하거나, JSON 데이터 구조 내부에서 고유 식별자로 사용할 UUID를 생성해야 할 수 있습니다. JSON5 또는 JSONC 설정 파일을 다루는 경우 구문 차이, 도구 지원, 모범 사례를 정리한 별도 가이드를 참고하십시오.
// Format (pretty-print) JSON with 2-space indentation
const raw = '{"name":"Alice","age":30,"active":true}';
const parsed = JSON.parse(raw); // parse string → object
const formatted = JSON.stringify(parsed, null, 2);
console.log(formatted);
// → {
// "name": "Alice",
// "age": 30,
// "active": true
// }
// Minify JSON (strip all whitespace)
const minified = JSON.stringify(parsed);
console.log(minified);
// → '{"name":"Alice","age":30,"active":true}' 주요 기능
즉시 포매팅
어떤 JSON이든 붙여넣으면 밀리초 단위로 완벽하게 들여쓰기된 출력을 얻을 수 있습니다. 2칸과 4칸 들여쓰기를 지원합니다.
실시간 유효성 검사
입력하는 동안 구문 오류를 자동으로 감지하고, 정확한 줄과 위치를 가리키는 명확한 오류 메시지를 표시합니다.
원클릭 최소화
포매팅된 JSON을 한 줄로 압축하여 프로덕션 API와 설정 파일의 파일 크기를 줄입니다.
100% 브라우저 기반
모든 처리는 브라우저 내부에서 이루어집니다. 데이터가 기기를 벗어나지 않으며, 서버 업로드도 추적도 없습니다.
대용량 파일 지원
최대 10MB의 JSON 파일을 원활한 성능으로 효율적으로 처리하며, 파일 크기 경고나 충돌이 발생하지 않습니다.
복사 및 다운로드
결과를 즉시 내보낼 수 있습니다. 한 번의 클릭으로 클립보드에 복사하거나 .json 파일로 다운로드할 수 있습니다.
예제
API 응답
{"status":200,"data":{"user":{"id":"usr_2x7kP9","name":"Alice Chen","email":"alice@example.com","roles":["admin","editor"],"lastLogin":"2026-03-12T08:30:00Z"},"meta":{"requestId":"req_abc123","timestamp":1741776600}}} 중첩된 사용자 데이터와 메타데이터를 포함한 일반적인 REST API 응답을 포매팅합니다
패키지 설정
{"name":"my-app","version":"2.1.0","private":true,"scripts":{"dev":"next dev","build":"next build","start":"next start","lint":"eslint ."},"dependencies":{"react":"^18.2.0","next":"14.1.0"},"devDependencies":{"typescript":"^5.3.0","eslint":"^8.56.0"}} 최소화된 package.json 설정 파일을 예쁘게 정렬합니다
데이터 컬렉션
[{"id":1,"product":"Laptop Pro","price":1299.99,"inStock":true,"tags":["electronics","computers"]},{"id":2,"product":"Wireless Mouse","price":29.99,"inStock":false,"tags":["electronics","accessories"]},{"id":3,"product":"USB-C Hub","price":49.99,"inStock":true,"tags":["electronics","accessories"]}] 데이터베이스나 전자상거래 API에서 가져온 상품 객체 배열을 포매팅합니다
중첩 설정
{"database":{"host":"localhost","port":5432,"name":"mydb","pool":{"min":2,"max":10}},"cache":{"enabled":true,"ttl":3600,"provider":"redis"},"logging":{"level":"info","format":"json","outputs":["stdout","file"]}} 데이터베이스, 캐시, 로깅 설정을 포함한 깊게 중첩된 애플리케이션 설정에 들여쓰기를 적용합니다
사용 방법
- 1
JSON 붙여넣기
위 입력 필드에 원본 JSON 데이터를 입력하거나 붙여넣으십시오. '예제 불러오기'를 클릭하여 샘플을 사용해 볼 수도 있습니다.
- 2
포매팅 또는 최소화
'JSON 포매팅'을 클릭하여 들여쓰기로 예쁘게 정렬하거나 'JSON 최소화'를 클릭하여 한 줄로 압축하십시오.
- 3
결과 복사
처리된 결과가 출력 영역에 표시됩니다. '복사'를 클릭하면 즉시 클립보드에 저장됩니다.
흔한 JSON 오류
후행 쉼표
JSON은 배열이나 객체의 마지막 요소 뒤에 오는 쉼표를 허용하지 않습니다. 특히 JavaScript 코드에서 복사할 때 자주 발생하는 오류 중 하나입니다.
{"name": "Alice", "age": 30,} {"name": "Alice", "age": 30} 작은따옴표
JSON은 모든 문자열과 키에 큰따옴표를 요구합니다. 작은따옴표는 JavaScript에서는 유효하지만 JSON에서는 유효하지 않습니다.
{'name': 'Alice'} {"name": "Alice"} 따옴표 없는 키
JSON의 모든 속성 키는 큰따옴표로 감싸야 합니다. 따옴표 없는 키는 JavaScript 객체에서는 유효하지만 JSON에서는 유효하지 않습니다.
{name: "Alice"} {"name": "Alice"} 주석
표준 JSON은 어떤 형태의 주석도 지원하지 않습니다. 주석이 필요하다면 JSONC(JSON with Comments)나 YAML을 대신 고려하십시오.
{"name": "Alice" // user name} {"name": "Alice"} 괄호 누락
모든 여는 괄호나 중괄호는 반드시 짝을 이루는 닫는 괄호나 중괄호가 있어야 합니다. 짝이 맞지 않는 괄호는 'Unexpected end of JSON input' 오류를 일으킵니다.
{"users": [{"name": "Alice"} {"users": [{"name": "Alice"}]} 예상치 못한 토큰
이 오류는 파서가 해당 위치에 올 수 없는 문자를 만났을 때 발생합니다. 흔한 원인으로는 요소 사이의 쉼표 누락이나 JSON이 끝난 뒤의 추가 문자가 있습니다.
{"name": "Alice" "age": 30} {"name": "Alice", "age": 30} 주요 활용 사례
- API 응답 디버깅
- 최소화된 API 응답을 읽기 쉬운 JSON으로 포매팅하여 빠르게 디버깅하고 검사합니다.
- 설정 파일
- package.json, tsconfig.json, .eslintrc 같은 설정 파일의 유효성을 검사하고 예쁘게 정렬합니다.
- 데이터 검사
- 데이터베이스, 로그, 서드파티 서비스에서 내보낸 JSON 데이터를 탐색하고 이해합니다.
- 코드 리뷰
- 코드 리뷰 중 더 명확한 차이점 확인과 쉬운 비교를 위해 JSON 스니펫을 포매팅합니다.
- 문서화
- 기술 문서와 튜토리얼용으로 깔끔하게 포매팅된 JSON 예제를 생성합니다.
- 데이터 마이그레이션
- 새 시스템으로 데이터를 가져오기 전에 JSON 구조와 구문의 유효성을 검사합니다.
기술 세부 정보
- RFC 8259 준수
- Unicode 및 이스케이프 문자를 포함한 표준 JSON 사양을 완전히 지원합니다.
- 브라우저 기반 처리
- 모든 포매팅은 네이티브 JSON.parse()와 JSON.stringify()를 사용하여 브라우저 내부에서 실행됩니다.
- 파일 크기 지원
- 구성 가능한 들여쓰기(2칸 또는 4칸)로 최대 10MB의 JSON 파일을 처리합니다.
모범 사례
- 사용 전 유효성 검사
- 구문 오류를 조기에 잡기 위해 프로덕션에서 사용하기 전에 항상 JSON 데이터의 유효성을 검사하십시오.
- 일관된 들여쓰기 사용
- 가독성과 버전 관리에서의 작은 파일 크기를 위해 2칸 들여쓰기를 유지하십시오.
- 프로덕션에서는 최소화
- 대역폭과 로드 시간을 줄이기 위해 API 응답과 설정 파일에 최소화된 JSON을 사용하십시오.
자주 묻는 질문
JSON을 온라인에서 어떻게 포매팅하나요?
JSON 유효성 검사는 어떻게 하나요?
JSON 최소화는 어떻게 하나요?
이 도구를 사용할 때 JSON 데이터는 안전한가요?
JSON의 "Unexpected token" 오류는 어떻게 해결하나요?
JSON에서 "trailing comma" 오류는 왜 발생하나요?
JSON에서 작은따옴표를 사용할 수 있나요?
JSON에 주석을 추가할 수 있나요?
JSON이 제대로 파싱되지 않는 이유는 무엇인가요?
JSON과 YAML의 차이는 무엇인가요?
JSON Schema란 무엇인가요?
JSON과 JSON5의 차이는 무엇인가요?
JSON 파일의 최대 크기는 얼마인가요?
완전히 최소화된 대용량 API 응답을 디버깅하기 위해 읽기 쉽게 만드는 가장 빠른 방법은 무엇인가요?
JavaScript 코드에서 데이터를 복사할 때 JSON 파싱 오류가 계속 발생하는데 무엇이 문제인가요?
관련 도구
모든 도구 보기 →Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
URL 인코더 · 디코더 (URL Encoder & Decoder)
인코딩 & 포매팅
URL을 실시간 인코딩·디코딩하고 내장 파서로 구조를 분석합니다. encodeURI와 encodeURIComponent 모드를 온라인에서 지원하며 데이터는 브라우저를 떠나지 않습니다.
진법 변환기 (Number Base Converter)
변환 도구
2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.
이미지 압축기 · JPEG, PNG, WebP 온라인 압축
변환 도구
JPEG, PNG, WebP 이미지를 브라우저에서 최대 80% 압축합니다. 업로드 없이 20장 일괄 처리, 품질 조절, 전후 비교를 무료로 지원합니다.
길이 변환기 · 미터법, 야드파운드법, 천문 단위
변환 도구
16개 길이 단위를 즉시 변환합니다. 미터법, 야드파운드법, 해리, 천문 단위까지. 1 inch = 2.54 cm. 온라인에서 무료로, 브라우저에서 바로 실행됩니다.
MD5 해시 생성기 · 파일 체크섬 도구
보안 도구
MD5, SHA-256, SHA-1, SHA-512 해시를 온라인에서 무료로 생성합니다. 브라우저에서 텍스트나 파일을 해싱하고 체크섬을 검증하며 결과를 복사할 수 있습니다.