본문으로 건너뛰기
ToolMug

JSON 포맷터 & 유효성 검사

JSON을 붙여넣으면 보기 좋게 정렬하거나, 한 줄로 압축하거나, 어디가 잘못됐는지 행·열과 알기 쉬운 이유로 정확히 알려줘요. 64비트 ID 같은 큰 숫자도 쓰인 그대로 유지되고, 데이터는 브라우저 안에만 머물러요.

브라우저에서 실행 — 입력한 내용은 업로드되지 않아요

처리 설정

입력

출력

사용 방법

  1. 왼쪽 칸에 JSON을 붙여넣거나 입력하세요. 입력하는 동안 바로 검사돼요.
  2. 들여쓰기를 고르세요. 공백 2칸, 공백 4칸, 탭, 또는 한 줄로 만드는 압축 중에서 선택할 수 있어요.
  3. 키 정렬을 체크하면 객체 키가 알파벳순으로 정렬되어 두 문서를 비교하기 쉬워져요.
  4. 오류가 있으면 메시지에 행과 열이 표시되고, 없으면 결과를 복사하거나 다운로드하세요.

옵션 설명

들여쓰기
공백 2칸이 가장 흔한 스타일이에요(npm, Prettier). 공백 4칸은 Python의 json.dumps(indent=4)와 같고, 압축은 모든 공백을 없애 크기를 최소로 줄여요.
키 정렬
모든 단계의 객체 키를 디코딩된 값 기준으로 정렬해요. 배열 순서는 절대 바꾸지 않아요.
큰 숫자
숫자는 쓰인 그대로 유지돼요. 많은 포맷터가 JSON을 JavaScript 숫자로 파싱하는데, 그러면 12345678901234567890이 조용히 12345678901234567000으로 바뀌어요.

자주 발생하는 JSON 오류와 해결 방법

메시지 흔한 원인
예상치 못한 문자 ' 큰따옴표 대신 작은따옴표를 사용
끝에 오는 쉼표 마지막 항목 뒤의 쉼표: [1, 2,]
예상치 못한 문자 / JavaScript에서 복사해 온 // 주석
문서가 너무 일찍 끝남 } 또는 ] 누락, 복사하다 잘린 경우가 많음
제어 문자는 이스케이프해야 함 문자열 안의 실제 탭이나 줄바꿈 — \t 또는 \n 사용
문서 끝 뒤의 예상치 못한 내용 JSON 문서 두 개를 이어 붙였거나, 닫는 괄호 뒤에 텍스트가 있음

예시

입력:

{"id":9007199254740993,"name":"Ada","tags":["math","code"]}

공백 2칸으로 정렬한 결과 — ID가 그대로인 점에 주목하세요:

{
  "id": 9007199254740993,
  "name": "Ada",
  "tags": [
    "math",
    "code"
  ]
}

자주 묻는 질문

"끝에 오는 쉼표를 허용하지 않아요"라는 오류는 왜 나오나요?

표준 JSON(RFC 8259)은 JavaScript와 달리 객체나 배열의 마지막 항목 뒤에 쉼표를 허용하지 않아요. 닫는 } 또는 ] 앞의 쉼표를 지우세요.

JSON에 작은따옴표나 주석을 써도 되나요?

아니요. JSON 문자열은 큰따옴표를 써야 하고, 주석은 형식에 포함되지 않아요. tsconfig.json 같은 파일이 이를 허용하는 건 해당 도구가 느슨한 파서(JSONC)를 쓰기 때문이에요.

JSON이 서버로 전송되나요?

아니요. 파싱과 정렬은 브라우저에서 이루어지므로 API 응답, 토큰, 설정 파일이 기기 밖으로 나가지 않아요.

다른 도구에서는 큰 ID 값이 왜 바뀌나요?

JavaScript는 숫자를 64비트 부동소수점으로 저장하는데, 이 방식은 9,007,199,254,740,991까지만 정확해요. 이 도구는 숫자를 변환하지 않으므로 그보다 큰 ID도 그대로 유지돼요.

얼마나 큰 파일까지 처리할 수 있나요?

몇 메가바이트짜리 문서는 노트북에서 즉시 정렬돼요. 수백 메가바이트 파일이라면 jq 같은 명령줄 도구가 더 알맞아요.

개인정보 보호

이 도구는 전적으로 브라우저에서 실행돼요. 파일과 텍스트는 기기에서 처리되며 서버로 업로드되지 않아요.

관련 도구