JSON 포맷터
input.json
여기에 JSON을 붙여넣으세요
또는 이 영역 어디든 .json 파일을 끌어다 놓으세요
정렬된 출력이 여기에 표시됩니다.
정렬이 실제로 하는 일
JSON 정렬은 파싱한 뒤 다시 직렬화하는 작업입니다. 문서를 하나의 값으로 읽어 들인 다음, 쉼표마다 줄바꿈을 넣고 중첩 단계마다 정해진 들여쓰기를 붙여 다시 씁니다. 데이터 모델은 전혀 바뀌지 않고, 토큰 사이의 바이트만 달라집니다.
이 구분이 중요한 이유는 왕복 과정에서 두 가지가 정규화되기 때문입니다.
-
숫자는 가장 짧은 형태로 다시 출력됩니다.
1.50은1.5,1e3은1000,-0은0이 됩니다. 값은 같고 표기만 표준형이 됩니다. -
불필요한 이스케이프는 사라집니다.
"\u0041"은"A"가 됩니다. 따옴표, 백슬래시, 제어 문자처럼 JSON이 요구하는 이스케이프는 유지됩니다. - 253−1을 넘는 정수는 정밀도를 잃습니다. 이는 이 도구가 아니라 JavaScript 숫자 타입의 특성입니다. 큰 ID는 문자열로 담으세요.
들여쓰기 폭 선택
들여쓰기 선택기는 즉시 적용되며 다음 방문 때도 기억됩니다. 대략적인 기준은 이렇습니다.
- 공백 2칸 — API 응답, 코드 리뷰에 붙여넣을 내용, 그리고
JSON.stringify(v, null, 2)출력과 일치해야 하는 모든 것. - 공백 4칸 — 중첩은 얕지만 줄이 긴, 사람이 직접 편집하는 설정 파일.
- 탭 — 참여자마다 선호하는 폭이 다른 저장소에 커밋되는 파일.
명령줄에서 같은 작업
jq . input.json은 공백 2칸으로 정렬하며, 이 페이지의 기본 설정 출력과 같습니다.
브라우저 쪽이 유리한 경우는 JSON이 파일이 아니라 클립보드에 있을 때, 4,000줄을 읽는 대신
트리를 눌러 가며 보고 싶을 때, 또는 직접 검증하지 않은 도구에
넣고 싶지 않은 데이터일 때입니다.
파싱되지 않는 문서 정렬하기
포맷터는 읽을 수 없는 것을 들여쓸 수 없으므로, 유효하지 않은 문서에는 출력 대신 오류가 표시됩니다. 오류 패널은 줄, 칸, 문제가 된 원본 줄과 정확히 그 문자 아래의 표식, 그리고 파서가 그 자리에서 기대한 내용을 보여 줍니다. 오류 위치로 이동은 커서를 그 문자에 놓습니다. 흔한 “JSON에 가까운” 실수라면 복구가 이를 고치고 한 번에 정렬까지 해 줍니다. 원인 전체 목록은 검사기에 있습니다.
자주 묻는 질문
정렬하면 데이터가 바뀌나요?
키 정렬을 함께 누르지 않는다면 공백만 바뀝니다. 속성 순서, 배열 순서, 모든 값은 파서가 읽은 그대로 유지됩니다. 숫자와 문자열 이스케이프라는 두 가지 예외는 위에서 설명했습니다.
공백 2칸, 4칸, 탭 중 무엇으로 들여써야 하나요?
JSON에서는 공백 2칸이 사실상의 기본값입니다. JSON.stringify(value, null, 2), jq, Prettier가 모두 그렇게 출력합니다. 공백 4칸은 사람이 직접 손보는 설정 파일에 어울립니다. 탭은 읽는 사람이 폭을 직접 고를 수 있고 디스크에서 약간 더 작습니다.
아직 유효하지 않은 JSON도 정렬할 수 있나요?
바로는 안 됩니다. 정렬에는 파싱이 필요합니다. 먼저 복구를 누르면 마지막 쉼표, 작은따옴표, 따옴표 없는 키, 주석이 고쳐지고, 그 결과를 정렬하면 됩니다.
큰 숫자가 왜 바뀌었나요?
JavaScript 숫자는 IEEE 754 배정도이므로 2^53−1을 넘는 정수는 파싱하는 순간 정밀도를 잃습니다. 데이터에 64비트 ID나 고정밀 소수가 있다면 JSON 안에서 문자열로 두세요. 이는 Node를 포함해 JavaScript 엔진 위에 만들어진 모든 JSON 도구에 해당합니다.
나머지 도구
같은 엔진, 같은 개인정보 보호 — 모든 페이지가 브라우저 안에서만 동작합니다.