JSON 포맷터

로딩 중...

JSON 데이터를 입력하면 자동으로 포맷팅하고 검증합니다

JSON이란?

JSON(JavaScript Object Notation)은 데이터를 저장하고 전송하는 데 사용되는 경량 텍스트 기반 데이터 교환 형식입니다. 2001년 더글라스 크락포드(Douglas Crockford)가 표준화했으며, 현재 웹 개발에서 가장 널리 사용되는 데이터 형식입니다.

JSON은 사람이 읽고 쓰기 쉽고, 기계가 파싱하고 생성하기 쉬운 구조를 가지고 있습니다. JavaScript에서 유래했지만, 거의 모든 프로그래밍 언어에서 지원합니다. REST API, 설정 파일, NoSQL 데이터베이스(MongoDB 등) 등 다양한 곳에서 사용됩니다.

에브리캘크의 JSON 포맷터는 JSON 데이터를 보기 좋게 정리하고, 문법 오류를 찾아주며, 트리 뷰로 구조를 시각화합니다. 모든 처리는 브라우저에서 이루어져 데이터가 외부로 전송되지 않습니다.

JSON의 기본 구조

JSON은 두 가지 기본 구조로 이루어져 있습니다.

객체 (Object): 중괄호 {}로 감싸고, "키": 값 형태의 쌍을 쉼표로 구분합니다. {"name": "홍길동", "age": 30}

배열 (Array): 대괄호 []로 감싸고, 값을 쉼표로 구분합니다. ["사과", "바나나", "오렌지"]

지원하는 데이터 타입은 6가지입니다.

  • 문자열 (String): 큰따옴표로 감싼 텍스트 — "안녕하세요"
  • 숫자 (Number): 정수 또는 소수 — 42, 3.14
  • 불리언 (Boolean): 참/거짓 — true, false
  • null: 값이 없음을 나타냄 — null
  • 객체 (Object): 중첩된 키-값 쌍 — {"city": "서울"}
  • 배열 (Array): 순서가 있는 값의 목록 — [1, 2, 3]

JSON 문법 규칙

JSON을 작성할 때 반드시 지켜야 하는 규칙들입니다. 이 규칙을 어기면 파싱 에러가 발생합니다.

필수 규칙

  • 키(key)는 반드시 큰따옴표("")로 감싸야 합니다 — 작은따옴표 불가
  • 문자열 값도 반드시 큰따옴표로 감싸야 합니다
  • 마지막 항목 뒤에 쉼표(trailing comma)를 넣으면 안 됩니다
  • 주석을 사용할 수 없습니다 — // 또는 /* */ 불가
  • undefined, NaN, Infinity는 사용할 수 없습니다

올바른 예시 {"name": "홍길동", "age": 30}

잘못된 예시 {name: "홍길동", age: 30} → 키에 따옴표 없음 {'name': '홍길동'} → 작은따옴표 사용 {"name": "홍길동", "age": 30,} → trailing comma {"name": "홍길동" /* 이름 */} → 주석 사용

주요 기능

  • 포맷(Beautify): 들여쓰기와 줄바꿈을 추가하여 가독성 향상. 2칸/4칸 선택 가능
  • 축소(Minify): 불필요한 공백과 줄바꿈을 제거하여 파일 크기 최소화
  • 검증(Validate): 실시간으로 문법 오류를 감지하고 에러 위치 표시
  • 트리 뷰: 데이터를 트리 구조로 시각화, 각 노드를 접기/펼치기 가능
  • 타입 색상: 문자열(초록), 숫자(파랑), 불리언(보라), null(회색)로 구분
  • 클립보드 복사: 포맷된 결과를 클립보드에 바로 복사
  • 샘플 데이터: 빈 입력 시 샘플 JSON 데이터를 불러와 테스트

JSON vs XML vs YAML

데이터 교환 형식으로 JSON 외에도 XML과 YAML이 있습니다. 각 형식의 특징을 비교합니다.

JSON

  • 장점: 경량, 파싱 속도 빠름, 대부분의 API에서 사용
  • 단점: 주석 불가, 날짜/바이너리 타입 없음
  • 용도: REST API, 설정 파일, NoSQL DB

XML (eXtensible Markup Language)

  • 장점: 네임스페이스 지원, 스키마 검증, 주석 가능
  • 단점: 장황함(태그가 많아 파일 크기 큼), 파싱이 복잡
  • 용도: SOAP API, RSS, 레거시 시스템

YAML (YAML Ain't Markup Language)

  • 장점: 가독성 최고, 주석 지원, 앵커/별칭으로 중복 제거
  • 단점: 들여쓰기에 민감, 파싱 속도 느림
  • 용도: 설정 파일(Docker, Kubernetes), CI/CD 파이프라인

현재 웹 API의 90% 이상이 JSON을 사용하며, 가장 범용적인 데이터 형식입니다.

이럴 때 사용하세요

  • API 응답 데이터를 확인하고 분석할 때
  • Postman, curl 등에서 받은 JSON 결과를 정리할 때
  • JSON 설정 파일(package.json, tsconfig.json 등)을 편집할 때
  • JSON 데이터의 문법 오류를 빠르게 찾아야 할 때
  • CDN이나 네트워크에서 축소된 JSON을 읽기 좋게 변환할 때
  • 대량의 JSON 데이터 구조를 트리 뷰로 파악할 때
  • 프론트엔드에서 목업 데이터를 작성할 때
  • 데이터베이스에서 추출한 JSON 문서를 정리할 때

사용 방법

  1. JSON 데이터를 입력창에 붙여넣거나 직접 입력합니다.

    • "샘플" 버튼을 클릭하면 예시 데이터가 자동으로 입력됩니다.
  2. 도구 모음에서 원하는 기능을 선택합니다.

    • 포맷: 보기 좋게 들여쓰기 정리
    • 축소: 공백 제거로 최소 크기로 변환
    • 복사: 결과를 클립보드에 복사
    • 지우기: 입력 내용 전체 삭제
  3. 들여쓰기 단위를 선택합니다 (2칸 또는 4칸).

  4. 뷰 모드를 전환합니다.

    • 포맷 뷰: 일반 텍스트 형태로 표시
    • 트리 뷰: 접기/펼치기가 가능한 계층 구조로 표시
  5. 문법 오류가 있으면 입력창 아래에 빨간색 에러 메시지가 표시됩니다.

자주 묻는 질문

Q. JSON 문법 오류의 흔한 원인은?
A. 가장 흔한 오류 5가지: (1) 마지막 항목 뒤의 쉼표(trailing comma), (2) 작은따옴표 사용(큰따옴표만 허용), (3) 키를 따옴표로 감싸지 않은 경우, (4) 주석 사용(JSON은 주석 미지원), (5) undefined 사용. 에러 메시지의 position 숫자를 확인하면 오류 위치를 빠르게 찾을 수 있습니다.
Q. 트리 뷰의 접기/펼치기는 어떻게 사용하나요?
A. 트리 뷰에서 화살표(▶/▼)를 클릭하면 해당 객체나 배열을 접거나 펼 수 있습니다. 기본적으로 2단계 깊이까지 펼쳐지며, 접힌 상태에서는 하위 항목 수가 표시됩니다. 대용량 JSON의 구조를 파악할 때 매우 유용합니다.
Q. 들여쓰기 2칸과 4칸의 차이는?
A. 기능적 차이는 없으며 순전히 가독성 선호도의 차이입니다. 2칸은 파일 크기가 작고 중첩이 깊은 데이터에서 가로 스크롤이 적습니다. 4칸은 구조가 더 명확하게 보입니다. 일반적으로 웹 개발에서는 2칸, Java/Python 프로젝트에서는 4칸을 많이 사용합니다.
Q. 대용량 JSON도 처리할 수 있나요?
A. 브라우저에서 처리하므로 일반적인 JSON 데이터(수 MB 이내)는 문제없이 처리됩니다. 다만 매우 큰 파일(수십 MB 이상)은 브라우저 메모리 제한에 의해 느려지거나 오류가 발생할 수 있습니다.
Q. JSON에 주석을 넣으려면?
A. JSON 표준은 주석을 지원하지 않습니다. 설정 파일에서 주석이 필요하다면 JSON5, JSONC(VS Code 방식), 또는 YAML을 사용하는 것을 고려해보세요. TypeScript의 tsconfig.json은 JSONC 형식으로 주석을 허용합니다.
Q. 입력한 데이터가 서버로 전송되나요?
A. 아닙니다. 모든 처리(파싱, 포맷팅, 검증)는 브라우저의 JavaScript 엔진에서 이루어집니다. 데이터가 서버로 전송되거나 저장되지 않으므로 민감한 데이터(API 키, 토큰 등)도 안심하고 사용할 수 있습니다.

개발자를 위한 JSON 활용 팁

  • API 응답을 확인할 때는 먼저 포맷팅하여 구조를 파악한 후 필요한 필드를 찾으세요
  • JSON.stringify(obj, null, 2)로 JavaScript에서 직접 포맷팅할 수 있습니다
  • JSON.parse()는 try-catch로 감싸서 파싱 오류를 처리하세요
  • package.json의 들여쓰기는 2칸이 표준입니다
  • API 응답 크기를 줄이려면 축소(minify)된 JSON을 전송하세요
  • VS Code에서 Shift+Alt+F로 JSON 파일을 자동 포맷할 수 있습니다
  • 날짜 데이터는 ISO 8601 형식(2025-01-15T09:30:00Z)을 사용하는 것이 표준입니다
EVERYCALC
배너 로딩 중입니다...