JSON 키 정렬
뒤섞인 JSON 키를 알파벳순으로 깔끔하게 — 붙여넣으면 바로 정렬됩니다.
설명
JSON 객체의 키를 알파벳순으로 재귀 정렬해 보기 좋게 정리합니다. 설정 파일·API 응답 비교에 활용하세요.
관련 도구
여러 사람이 함께 편집하는 JSON 설정 파일은 시간이 지날수록 키 순서가 제각각이 되어 코드 리뷰나 diff 비교가 어려워집니다. 이 도구는 JSON 객체의 키를 알파벳순으로 재정렬해 구조를 일관되게 만들어줍니다. 중첩된 객체도 재귀적으로 정렬하므로 파일 전체를 한 번에 정리할 수 있습니다.
사용 방법
입력창에 정렬할 JSON을 붙여넣고 '키 정렬' 버튼을 클릭합니다. 최상위 객체뿐 아니라 중첩된 모든 객체의 키가 알파벳 오름차순(A→Z)으로 재배열됩니다. 정렬 결과는 들여쓰기가 적용된 pretty-print 형태로 출력되므로 바로 읽기 편하고, 복사 버튼으로 가져가 파일에 덮어쓰면 됩니다. 배열 내부의 순서는 변경되지 않으므로 순서가 중요한 데이터는 안전합니다.
이럴 때 유용해요
Git으로 관리하는 프로젝트에서 JSON 설정 파일의 키 순서가 커밋마다 달라지면 diff가 지저분해져 실제 변경 내용을 파악하기 어렵습니다. 키를 항상 알파벳순으로 유지하면 같은 내용이면 같은 diff가 나오므로 리뷰 부담이 줄어듭니다. 또한 두 개의 JSON 객체를 텍스트로 비교할 때 키 순서가 다르면 동일한 내용도 달라 보이는데, 둘 다 정렬한 뒤 비교하면 실질적인 차이만 남습니다.
알아두면 좋은 점
JSON 명세(RFC 8259)는 객체 키 순서를 보장하지 않습니다. 즉 파서는 어떤 순서로 키를 반환해도 규격에 어긋나지 않으므로, 정렬 후에도 JSON의 의미는 완전히 동일합니다. 단, 애플리케이션 코드가 특정 키 순서를 암묵적으로 가정하고 있다면 정렬 후 동작이 달라질 수 있으니, 설정 파일 외의 데이터 파일에 적용할 때는 주의가 필요합니다. 배열 안의 객체 요소도 각각 키가 정렬되므로 배열 전체 구조를 그대로 유지하면서 내부만 정리됩니다.
자주 묻는 질문
배열 요소의 순서도 바뀌나요?
대소문자 구분 없이 정렬하나요?
5단계 이상 중첩된 구조도 정렬되나요?
정렬 후 원본을 복원할 수 있나요?
JSON이 아닌 JavaScript 객체(따옴표 없는 키 등)도 처리되나요?
개인정보처리방침
모든 처리는 브라우저 내부에서만 수행되며 입력값·파일은 서버로 전송·저장되지 않습니다. 광고: Google AdSense(쿠키 사용 가능, 설정). 문의 kjh920424@gmail.com
JSON 키 정렬 도구란
JSON 객체의 키(key)를 알파벳순으로 재배열해 주는 도구입니다. 값(value)은 그대로 두고 키의 순서만 바꾸기 때문에 데이터 내용은 변하지 않습니다. 입력창에 JSON을 붙여넣고 정렬 버튼을 누르면 브라우저 안에서 바로 처리되고, 결과를 복사해 그대로 쓸 수 있습니다. 서버로 전송하지 않으므로 API 응답이나 설정값처럼 민감한 데이터도 창을 벗어나지 않습니다.
작동 원리
입력 문자열을 먼저 JSON으로 파싱한 뒤, 각 객체마다 키 목록을 뽑아 유니코드 코드포인트 기준으로 오름차순 정렬하고 새 객체에 다시 담습니다. 중첩된 객체와 배열 안의 객체까지 재귀적으로 내려가며 모든 계층의 키를 정렬합니다. 주의할 점은 배열의 순서입니다. 배열 요소는 값이므로 순서를 건드리지 않고, 배열 안에 들어 있는 객체의 키만 정렬됩니다. 정렬 기준이 코드포인트라서 대문자(A~Z, U+0041~)가 소문자(a~z, U+0061~)보다 앞에 오고, 숫자로 시작하는 키가 알파벳보다 먼저 배치됩니다.
이럴 때 씁니다
같은 데이터인데 키 순서만 다른 두 JSON을 비교할 때 유용합니다. 예를 들어 서로 다른 서버가 내려주는 응답이나 팀원이 각자 저장한 설정 파일을 정렬해 두면, diff 도구로 볼 때 순서 차이 때문에 생기는 불필요한 변경 표시가 사라져 실제로 값이 바뀐 부분만 눈에 들어옵니다. package.json의 dependencies, i18n 번역 키 파일, API 목(mock) 데이터처럼 사람이 자주 열어보는 파일을 일정한 순서로 유지하는 데도 좋습니다.
사용 팁
정렬 전에 JSON 문법이 올바른지 확인하세요. 마지막 요소 뒤의 쉼표(trailing comma)나 홑따옴표는 표준 JSON이 아니라 파싱 단계에서 걸립니다. 또한 같은 객체 안에 중복 키가 있으면 파싱 시점에 뒤의 값만 남으므로, 정렬 결과에서 키 하나가 사라진 것처럼 보일 수 있습니다. 키 순서를 값의 의미로 활용하는 경우(예: 표시 순서를 키 배치로 표현한 데이터)에는 정렬이 오히려 의미를 흐트러뜨릴 수 있으니 주의하세요.
자주 묻는 질문
값이나 배열 순서도 바뀌나요?
아니요. 정렬 대상은 객체의 키뿐입니다. 값은 그대로 유지되고, 배열 요소의 순서도 바뀌지 않습니다. 단, 배열 안에 든 객체의 키는 정렬됩니다.
대소문자와 한글 키는 어떻게 정렬되나요?
유니코드 코드포인트 순서를 따릅니다. 그래서 대문자가 소문자보다 앞에 오고, 영문 뒤에 한글이 배치됩니다. 사전식(대소문자 무시) 정렬과는 결과가 다를 수 있습니다.
중첩된 객체 안쪽 키도 정렬되나요?
네. 모든 계층을 재귀적으로 순회하며 정렬하므로, 깊이 들어간 객체의 키까지 함께 알파벳순으로 맞춰집니다.
데이터가 서버로 전송되나요?
전송되지 않습니다. 파싱과 정렬 모두 브라우저 안에서 이뤄지며, 결과는 복사 버튼으로 가져가는 방식입니다.
⭐ 즐겨찾기(Ctrl+D) 해두면 다음에도 바로 열 수 있어요