1. 홈
  2. 개발자
  3. JSON 포맷터

JSON 포맷터

JSON 정렬·압축·검증을 한 번에, 오류는 줄과 칸까지 짚어 줍니다.

내 브라우저에서 처리 · 업로드 없음 오프라인 동작
올바른 JSON입니다.
결과
{ "orderId": "A-20261005-0012", "customer": { "name": "김민지", "email": "minji@example.com", "vip": true }, "items": [ { "sku": "TS-BLK-M", "name": "반팔 티셔츠", "qty": 2, "price": 19900 }, { "sku": "CAP-01", "name": "볼캡", "qty": 1, "price": 15000 } ], "total": 54800, "paidAt": "2026-10-05T09:30:00+09:00", "coupon": null }
키 개수
17
최대 깊이
3
입력 크기
297 B
결과 크기
430 B

입력한 JSON은 브라우저 안에서만 처리되며 서버로 전송되지 않습니다.

사용 방법

  1. 입력칸에 JSON을 붙여넣습니다. API 응답, 설정 파일, 로그 한 줄 등 무엇이든 됩니다.
  2. 보기 좋게 정렬은 들여쓰기(공백 2칸·4칸·탭)를 넣어 줄을 나누고, 한 줄로 압축은 공백과 줄바꿈을 모두 없앱니다.
  3. 문법이 틀리면 결과 대신 몇 번째 줄, 몇 번째 칸에서 무엇이 잘못됐는지 보여주고, 해당 글자를 강조합니다.
  4. 키 이름순 정렬을 켜면 모든 깊이의 객체 키가 사전순으로 정렬됩니다. 두 JSON을 텍스트 비교로 비교하기 전에 켜 두면 순서 차이가 사라집니다.
  5. 결과는 복사하거나 .json 파일로 내려받을 수 있습니다.

자주 나는 JSON 오류

JSON 문법은 RFC 8259(ECMA-404)로 정해져 있고, 자바스크립트 객체 표기보다 엄격합니다.

오류 잘못된 예 올바른 예
끝 쉼표 {"a": 1,} {"a": 1}
작은따옴표 {'a': 'x'} {"a": "x"}
따옴표 없는 키 {a: 1} {"a": 1}
주석 {"a": 1 // 메모} 주석은 넣을 수 없음
빠진 쉼표 {"a": 1 "b": 2} {"a": 1, "b": 2}
문자열 속 줄바꿈 "첫 줄(엔터)둘째 줄" "첫 줄\n둘째 줄"
앞자리 0 {"zip": 01234} {"zip": "01234"}
undefined·NaN {"a": NaN} {"a": null}

“쉼표가 필요합니다” 오류는 표시된 줄이 아니라 바로 앞 줄 끝에서 쉼표가 빠진 경우가 대부분입니다. 그래서 오류 위치와 함께 앞 줄도 같이 보여줍니다.

예시

{"name":"김민지","tags":["vip","new"]}를 공백 2칸으로 정렬하면 7줄이 되고, 키는 2개(name, tags), 최대 깊이는 2입니다. 같은 데이터를 압축하면 41바이트(UTF-8, 한글 1자 3바이트)입니다.

주의할 점

  • 큰 정수는 끝자리가 바뀝니다. 자바스크립트 숫자는 2^53−1(9,007,199,254,740,991)까지만 정확합니다. 12345678901234567890 같은 ID는 정렬 후 12345678901234567000으로 보이므로, 이런 값이 있으면 경고를 띄웁니다. 큰 ID는 문자열로 주고받는 것이 안전합니다.
  • 같은 키가 두 번 나오면 마지막 값만 남습니다. JSON 표준은 중복 키 처리를 정하지 않았고, 브라우저는 마지막 값을 씁니다.
  • 파일 맨 앞의 BOM(U+FEFF)은 자동으로 무시합니다.

자주 묻는 질문

붙여넣은 JSON이 서버로 전송되나요?

아니요. 파싱과 정렬은 모두 브라우저의 JSON.parse/JSON.stringify로 처리하고, 네트워크 요청을 보내지 않습니다. 토큰이나 개인정보가 들어 있는 응답도 안심하고 확인할 수 있습니다. JWT라면 JWT 디코더가 더 편합니다.

“최대 깊이”는 어떻게 세나요?

숫자·문자열 같은 값은 0, 객체나 배열 하나는 1이고, 안에 객체·배열이 들어갈 때마다 1씩 늘어납니다.

탭과 공백 중 무엇을 써야 하나요?

기능상 차이는 없습니다. 웹 프로젝트에서는 공백 2칸이 가장 흔하고, 파이썬 json.dumps(indent=4)는 4칸을 씁니다. 팀의 코드 스타일을 따르면 됩니다.

준비 중인 도구

필요한 도구가 없나요?

어떤 작업을 하고 싶은지 적어 주세요. 요청이 많은 도구부터 만듭니다.