Menu

JSON 포매터

실시간 트리 뷰로 JSON을 포맷·검증·탐색하세요.

마지막 업데이트

들여쓰기
입력JSON을 붙여넣어 시작
출력
형식화된 JSON이 여기에 표시됩니다 — 한 번의 클릭으로 다시 들여쓰기, 검증, 복사할 수 있습니다.

JSON 포매터란?

JSON 포매터(JSON 뷰어, pretty-printer라고도 부릅니다)는 한 줄로 압축되거나 들쭉날쭉한 JSON을 들여쓰기가 잘 된 읽기 좋은 형태로 바꿔주는 도구입니다. API 응답을 들여다볼 때, 설정 파일을 읽을 때, 로그를 디버깅할 때, 테스트 픽스처를 비교할 때, 프런트엔드와 백엔드 사이에 데이터를 옮길 때 등 개발자가 가장 자주 손이 가는 도구 중 하나죠.

JSON은 문법이 꽤 까다롭습니다. 키도 문자열도 반드시 큰따옴표로 감싸야 하고, 콤마는 정확한 자리에 있어야 하며, 열린 {[는 반드시 닫혀야 합니다. 포매터는 이런 구조를 한눈에 보이게 만들어 주고, 내장된 검증기는 문법이 깨졌을 때 그 위치를 정확히 알려줍니다.

JSON은 JavaScript Object Notation의 줄임말입니다. 자바스크립트에서 출발하긴 했지만 거의 모든 프로그래밍 언어가 JSON을 기본으로 읽고 쓸 수 있기 때문에, 웹에서 구조화된 데이터를 주고받는 사실상의 표준 포맷이 되었습니다.

사용하면서 자연스럽게 익히게 되는 것들

  • 객체는 이름이 있는 필드를 묶을 때 {}로, 배열은 순서가 있는 값들을 나열할 때 []로 쓰며, 둘 다 원하는 만큼 깊이 중첩할 수 있습니다.
  • 정렬된 JSON과 압축된 JSON은 *완전히 같은 데이터*입니다. 공백은 가독성에만 영향을 줄 뿐 의미는 그대로죠. 서버는 보통 바이트를 아끼려고 압축된 JSON을 응답합니다.
  • JSON 값은 딱 6가지뿐입니다: 문자열, 숫자, 불리언, null, 객체, 배열. undefined도 함수도 주석도 없습니다.

JSON을 포맷팅하는 방법

  1. 입력창에 JSON 붙여넣기

    API 응답이나 로그, 설정 파일에서 JSON을 복사해 왼쪽 입력창에 붙여넣으세요. 압축된 형태든 일부만 정리된 형태든 모두 받아들입니다.

  2. 들여쓰기 폭 선택하기

    스페이스 2칸이 가장 흔하고, 4칸도 많이 쓰입니다. 진행 중인 프로젝트의 코딩 스타일에 맞춰 고르세요.

  3. 검증 결과 확인하기

    JSON이 유효하면 오른쪽에 정리된 결과가 나타납니다. 문제가 있으면 에러 메시지가 파싱이 실패한 줄과 글자 위치를 알려줍니다.

  4. 트리 뷰로 구조 살펴보기

    접고 펼 수 있는 트리 뷰를 활용해 깊이 중첩된 객체와 배열을 단계별로 닫아가며 볼 수 있습니다. 처음 보는 API 응답의 구조를 가장 빠르게 파악하는 방법입니다.

  5. 결과 복사하거나 다시 압축하기

    정리된 결과를 코드나 문서에 그대로 복사해 쓰거나, 저장이나 네트워크 전송용으로 다시 한 줄로 압축할 수 있습니다.

JSON 문법 빠른 참고

JSON을 구성하는 모든 요소를 정리했습니다. 이 목록 바깥에 있는 건 유효한 JSON이 아닙니다. 명세: RFC 8259, ECMA-404.

토큰의미예시
{ }객체 — 키/값 쌍의 묶음{"name": "Maya"}
[ ]배열 — 값들의 순서 있는 목록[1, 2, 3]
"..."문자열 — 항상 큰따옴표로 감쌈"hello"
Number정수 또는 실수, 따옴표 없음, 앞에 + 불가42, -3.14
true / false불리언 값, 반드시 소문자true
null비어 있음 / 값 없음을 의미null
:키와 값을 구분하는 기호"id": 7
,항목 사이를 구분 — 마지막 뒤에는 절대 안 됨[1, 2, 3]

직접 시도해 볼 JSON 예제

흔한 API 응답을 보기 좋게 정리하기

입력
{"user":{"id":7,"name":"Maya"},"skills":["HTML","JavaScript"]}
정리 결과
{  "user": {    "id": 7,    "name": "Maya"  },  "skills": ["HTML", "JavaScript"]}

포맷팅을 거치고 나면 중첩된 user 객체와 skills 배열이 훨씬 한눈에 들어옵니다. 데이터 자체는 똑같고 공백만 달라진 거죠.

꼬리에 붙은 콤마(trailing comma) 잡기

유효하지 않음
{  "name": "Coddy",  "active": true,}

JSON은 마지막 속성 뒤에 콤마가 붙는 것을 허용하지 않습니다. 검증기는 닫는 } 위치를 짚어 주죠. 자바스크립트 객체 문법을 그대로 JSON에 옮길 때 가장 흔하게 나오는 실수입니다.

값 타입 비교해 보기

입력
{  "count": 3,  "countText": "3",  "enabled": true}

3은 숫자, "3"은 문자열, true는 불리언으로 서로 다른 JSON 타입입니다. API 호출이 실패하는 이유가 구조는 맞는데 값의 타입이 어긋나 있는 경우, 의외로 자주 있습니다.

깊이 중첩된 응답 읽기

입력
{  "data": {    "orders": [      { "id": 101, "items": [{ "sku": "A", "qty": 2 }] },      { "id": 102, "items": [] }    ]  }}

트리 뷰에서 data.orders를 접었다 펴면서 한 단계씩 구조를 들여다볼 수 있습니다. 객체가 들어 있는 배열이 또 중첩되는 패턴은 REST 응답에서 가장 흔한 형태입니다.

JSON에서 자주 하는 실수

  • 키나 문자열을 작은따옴표로 감싸는 것 — JSON은 큰따옴표만 허용합니다.
  • JSON을 자바스크립트 객체처럼 다루는 것: 주석, 함수, undefined는 JSON에서 유효하지 않고, trailing comma도 파싱이 실패합니다.
  • JSON의 숫자에는 앞에 +0을 제외한 leading zero가 올 수 없고, 정말 숫자 타입으로 쓰고 싶다면 따옴표로 감싸지 말아야 한다는 점을 잊는 것.

JSON Formatter 자주 묻는 질문

JSON이 뭔가요?
JSON(JavaScript Object Notation)은 구조화된 데이터를 표현하기 위한 가벼운 텍스트 포맷입니다. 키-값 쌍과 배열을 사용하며, 거의 모든 프로그래밍 언어가 지원하기 때문에 웹 API, 설정 파일, 메시지 페이로드의 사실상 표준이 되었습니다.
JSON은 어떻게 포맷팅하나요?
JSON 포매터에 JSON을 붙여넣고 들여쓰기 폭(보통 스페이스 2칸)을 고르면, 도구가 같은 데이터에 줄바꿈과 들여쓰기를 더해 다시 출력합니다. 대부분의 포매터는 같은 단계에서 문법 검증도 함께 해줍니다.
JSON 포매터와 JSON 검증기는 뭐가 다른가요?
포매터는 이미 유효한 JSON을 더 읽기 좋은 형태로 바꿔줍니다. 검증기는 그 JSON 문법이 애초에 유효한지를 확인합니다. 좋은 JSON 도구는 두 가지를 다 해줍니다.
Pretty-print를 하면 데이터가 바뀌나요?
아니요. 들여쓰기와 줄바꿈만 더해질 뿐, 키, 배열, 문자열, 숫자, 불리언, null 값은 모두 그대로 유지됩니다. 다시 압축(minify)하면 원래의 네트워크 친화적인 형태가 똑같이 복원됩니다.
자바스크립트 객체처럼 보이는데 왜 JSON이 깨지나요?
JSON은 자바스크립트 객체 문법보다 훨씬 엄격합니다. 키와 문자열은 반드시 큰따옴표여야 하고, 주석은 쓸 수 없으며, trailing comma·작은따옴표·undefined는 모두 허용되지 않습니다.
개발자들은 평소에 JSON을 어디서 쓰나요?
JSON은 어디에나 있습니다. REST와 GraphQL 응답, 요청 바디, 설정 파일(package.json, tsconfig.json), 패키지 메타데이터, 로그 라인, 브라우저 localStorage, 테스트 픽스처까지 정말 폭넓게 쓰입니다.

자세히 알아보기

다른 개발자 도구

Coddy로 코딩 배우기

시작하기