JSON 포맷터

JSON을 붙여 넣으면 원하는 들여쓰기로 정렬하거나 전송용으로 한 줄로 압축합니다. 잘못된 JSON은 바로 알려 주고, 키를 정렬하면 두 문서를 비교하기도 쉬워집니다.

모든 단계의 객체 키를 정렬합니다. 배열 순서는 유지됩니다.

결과

예시로 해 보기:

사용 방법

  1. 상자에 JSON을 붙여 넣습니다. 문법이 맞으면 결과가 바로 나타납니다.
  2. 공백 2칸, 4칸, 탭 중에서 들여쓰기를 고르거나 한 줄로 압축을 선택합니다.
  3. 키 정렬을 켜면 모든 단계의 객체 키가 알파벳순으로 정렬됩니다.
  4. 결과를 복사합니다. 요약에서 키 개수, 중첩 깊이, 바이트 크기를 확인할 수 있습니다.

알아 두기

  • 브라우저 내장 JSON 파서를 사용하므로 2^53을 넘는 숫자는 정밀도를 잃고 중복 키는 마지막 값만 남습니다.
  • 입력한 JSON은 서버로 전송되지 않고 브라우저 안에서만 처리됩니다.

자주 묻는 질문

왜 올바른 JSON이 아니라고 나오나요?

JSON은 자바스크립트보다 규칙이 엄격합니다. 키와 문자열은 반드시 큰따옴표로 감싸야 하고, 마지막 항목 뒤에 쉼표를 붙일 수 없으며, 주석도 쓸 수 없습니다. 값은 객체, 배열, 문자열, 숫자, true, false, null만 가능합니다. 작은따옴표, 주석, 목록 끝의 쉼표가 가장 흔한 원인이므로 첫 번째 오류부터 고치고 다시 확인하세요.

압축(minify)은 무엇을 하나요?

토큰 사이의 공백과 줄바꿈을 모두 없애 JSON을 한 줄로 만듭니다. API 요청, 설정 문자열, 로그처럼 크기를 줄여야 할 때 쓰는 가장 작은 형태입니다. 값이나 키 순서는 바뀌지 않으며, 압축한 문서를 다시 정렬하면 같은 데이터가 그대로 나오므로 두 형식을 안심하고 오갈 수 있습니다.

키 정렬은 어떤 순서인가요?

객체의 키를 유니코드 코드 포인트 순서로 정렬합니다. 숫자, 대문자, 소문자 순이며 중첩된 객체 안까지 모두 적용됩니다. 배열은 순서 자체가 의미를 가지므로 그대로 둡니다. 키를 정렬해 두면 두 버전의 문서를 diff 도구로 비교할 때 줄이 맞아떨어져 차이를 찾기 쉽습니다.

큰 숫자나 중복 키도 그대로 유지되나요?

브라우저에 내장된 JSON 파서를 사용하므로 2의 53제곱(약 9천조)을 넘는 정수는 정밀도를 잃고, 1.0 같은 실수는 1로 바뀌며, 같은 키가 두 번 나오면 마지막 값만 남습니다. 큰 정수나 ID를 정확히 보존해야 한다면 문자열로 감싼 뒤 정렬하세요.

키 개수와 깊이는 어떻게 세나요?

키 개수는 모든 단계에 있는 객체 키의 총합입니다. 깊이는 객체와 배열이 가장 깊게 중첩된 단계로, 중첩 없는 객체는 1이고 숫자나 문자열 하나만 있으면 0입니다. 바이트는 결과 JSON의 UTF-8 크기이며 파일이나 HTTP 본문이 차지하는 크기와 같습니다. 한글 한 글자는 3바이트로 계산됩니다.

결과는 참고용 추정값입니다. 중요한 사항은 공식 기관의 계산과 대조하세요.