JSON 포맷터

JSON을 보기 좋게 정렬하거나 한 줄로 압축하고, 문법 오류는 몇 번째 줄·열인지 바로 표시해요. 트리 보기, 큰 정수 보존까지. 무료, 회원가입 없음, 업로드 없음.

  • 오류 줄·열 표시
  • 트리 펼치기/접기
  • 큰 정수 그대로
  • 원클릭 압축
트리 보기

올바른 JSON을 입력하면 펼치고 접을 수 있는 트리가 여기에 표시돼요.

데이터는 브라우저 안에서만 처리되며 업로드하거나 저장하지 않아요.

🔒 모든 계산은 브라우저 안에서 이뤄지며 데이터는 어떤 서버에도 업로드되지 않아요.

이럴 때 쓰면 좋아요

  • API 디버깅: API가 돌려준 한 줄짜리 JSON을 읽기 쉽게 정렬하고 ‘트리 보기’로 필드를 찾아요.
  • 설정 파일 수정: 쉼표나 따옴표가 빠진 설정 파일에서 오류가 몇 번째 줄, 몇 번째 열인지 바로 표시해요.
  • 배포 전 압축: ‘압축’을 누르면 한 줄로 줄어 파일 크기를 줄이거나 코드에 붙여 넣기 편해요.
  • 비교 전 정리: ‘키 정렬’을 체크해 두 JSON의 필드 순서를 맞춘 뒤 ‘텍스트 비교’ 도구로 비교해요.

사용 방법

  1. 왼쪽 입력란에 JSON을 붙여 넣거나 ‘파일 열기’로 .json 파일을 불러와요. 입력하는 동안 문법을 바로 검사하고 오른쪽 트리 보기도 함께 바뀌어요.
  2. 들여쓰기(공백 2칸, 4칸, 탭)를 고르고 ‘정렬’을 누르면 읽기 쉬운 여러 줄로, ‘압축’을 누르면 한 줄로 바뀌어요. ‘키 정렬’을 체크하면 모든 객체의 키가 순서대로 정렬돼요.
  3. 문법 오류가 있으면 몇 번째 줄, 몇 번째 열인지 표시해요. ‘오류 위치로’를 누르면 문제가 된 문자가 선택돼요. 다 되면 ‘복사’로 가져가세요.

사용 예시

마지막 쉼표: {, "name": "Pockez",, "tags": ["json", "tool"],, } 네 줄을 입력하면 ‘4번째 줄 1번째 열: 마지막 항목 뒤에 쉼표가 있어요’라고 표시돼요. 오류는 }를 읽은 위치를 가리키지만 지워야 할 것은 3번째 줄 끝의 쉼표예요.

큰 정수 보존: {"orderId":9007199254740993,"price":1.50}을 JavaScript의 JSON.parse로 읽으면 9007199254740992, 가격은 1.5가 돼요. 이 도구로 정렬하면 9007199254740993과 1.50이 그대로 남고 ‘안전 범위를 넘는 큰 정수 1개’라는 안내가 나와요.

키 정렬: {"name":"Alice","age":30,"tags":["a","b"]}를 ‘키 정렬’ 체크, 공백 2칸으로 정렬하면 키 순서가 age, name, tags가 되고 tags 배열 안의 a, b 순서는 그대로예요.

결과 해석

  • ‘올바른 JSON이에요’는 데이터 전체가 JSON 표준(RFC 8259)을 따른다는 뜻이며, 어떤 프로그래밍 언어에서도 읽을 수 있어요.
  • 오류의 줄과 열은 파서가 처음으로 이해하지 못한 위치예요. 실제로 고칠 곳은 보통 그 바로 앞이며, 예를 들어 쉼표가 빠지면 다음 키의 시작 위치가 표시돼요.
  • 트리 보기에서 { 3 }은 필드가 3개인 객체, [ 2 ]는 요소가 2개인 배열이에요. 점선 밑줄이 있는 숫자는 큰 정수이며 마우스를 올리면 설명이 나와요.
  • 큰 정수 안내는 데이터가 틀렸다는 뜻이 아니에요. 받는 쪽이 JavaScript처럼 배정밀도 부동소수점으로 읽으면 값이 달라지므로 문자열로 보내거나 BigInt로 처리하는 것을 권해요.

원리와 계산 방법

  • RFC 8259와 ECMA-404 문법에 따라 한 글자씩 읽는 자체 파서를 사용하며, 첫 오류에서 멈추고 위치를 알려 줘요. 브라우저 내장 JSON.parse에 의존하지 않아 어느 브라우저에서나 오류 위치와 설명이 같아요.
  • 정렬과 압축은 공백과 줄바꿈만 다시 배치해요. 문자열은 원래 이스케이프 표기를 유지하고(\u00e9는 \u00e9 그대로), 숫자도 원래 표기를 유지하며(1.50, 1e400 그대로), 객체 키의 원래 순서와 중복 키도 남아요.
  • 키 정렬은 UTF-16 코드 단위 순서(JavaScript 기본 정렬과 같음)로 모든 객체를 재귀적으로 정렬해요. 같은 키는 원래 앞뒤 순서를 유지하고 배열 순서는 바꾸지 않아요.
  • 절댓값이 2^53−1(9007199254740991)을 넘는 정수는 큰 정수로 표시해요. 소수점이나 지수가 있는 숫자는 해당하지 않아요.

한계와 주의점

  • 표준 JSON만 받아요. 주석, 마지막 쉼표, 작은따옴표, NaN, undefined 같은 JSON5나 JavaScript 문법은 오류로 처리돼요.
  • 한 번에 첫 번째 오류만 알려 줘요. 고치면 자동으로 다음 오류를 검사해요.
  • 중첩이 1000단계를 넘으면 브라우저가 멈추지 않도록 분석을 중단하고 알려 줘요.
  • 수십 MB의 큰 파일은 브라우저가 느려질 수 있어요. 트리는 처음 두 단계만 펼치며 ‘모두 펼치기’는 모든 노드를 만들기 때문에 큰 파일은 필요한 부분만 펼치세요.

자주 묻는 질문

왜 JSON 오류가 나나요?

가장 흔한 원인은 마지막 항목 뒤의 쉼표, 큰따옴표 대신 쓴 작은따옴표, 따옴표 없는 키, // 주석, undefined나 NaN 같은 값이에요. JavaScript에서는 되지만 표준 JSON에서는 허용되지 않아요. 오류 메시지에 위치와 이유가 나와요.

큰 숫자가 바뀌지는 않나요?

바뀌지 않아요. JavaScript의 JSON.parse를 쓰는 도구는 9007199254740991보다 큰 정수(예: 주문번호 9007199254740993)를 비슷한 값으로 바꿔 버려요. 이 도구는 원래 자릿수를 그대로 유지하고, 그런 큰 정수가 몇 개인지 알려 줘요.

정렬하면 데이터가 바뀌나요?

아니요. 정렬과 압축은 공백과 줄바꿈만 조정하고 문자열, 숫자 표기(예: 1.50), 키 순서는 그대로 둬요. ‘키 정렬’을 체크했을 때만 객체 키 순서가 바뀌며 배열 순서는 절대 바뀌지 않아요.

데이터가 업로드되나요?

아니요. 분석, 정렬, 트리 보기 모두 브라우저 안에서 처리되며 서버로 전송하거나 저장하지 않아요. 개인정보나 API 키가 담긴 설정 파일도 안심하고 다룰 수 있어요.

JSON에 주석을 쓸 수 있나요?

표준 JSON은 // 나 /* */ 주석을 지원하지 않아 오류로 판정돼요. 주석이 필요한 설정 파일은 보통 JSONC, JSON5, YAML 같은 형식을 써요.

JSON을 엑셀이나 CSV로 바꾸려면 어떻게 하나요?

이 사이트의 ‘CSV JSON 변환기’에서 ‘JSON → CSV’를 고르고 데이터를 붙여 넣은 뒤, 다운로드한 CSV를 엑셀로 열면 돼요(‘BOM 추가’를 켜 두어야 한글이 깨지지 않아요).

JSON과 JavaScript 객체는 무엇이 다른가요?

JSON은 순수 텍스트 데이터 형식이라 키를 반드시 큰따옴표로 감싸야 하고, 끝 쉼표를 쓸 수 없으며, 함수나 undefined를 넣을 수 없어요. JavaScript 객체 문법은 이보다 훨씬 느슨해요.

참고 자료