입력

정렬된 출력

JSON 정렬이란?

키 순서만 바뀌었는데 diff가 절반을 차지한 pull request를 본 적 있으신가요? JSON 객체 키는 순서가 정의되어 있지 않습니다 — RFC 8259 사양은 이를 보장하지 않으며 파서는 임의의 순서로 반환할 수 있습니다. 알파벳 순으로 정렬하면 git diff가 깔끔해지고, 해싱이 결정론적이 되며, 생성된 출력이 재현 가능해집니다.

이 도구는 JSON 객체의 키를 재귀적으로 정렬합니다. 중첩된 객체의 키도 정렬됩니다. 배열은 그대로 유지되고 객체 키만 재정렬됩니다. 처리는 브라우저에서 실행됩니다.

이 도구 사용 방법

1

JSON 붙여넣기

왼쪽 편집기에 JSON을 붙여넣거나 파일을 업로드하세요. 예제 데이터에는 샘플을 사용하세요. 이 도구는 모든 유효한 JSON을 허용합니다.

2

정렬된 출력 보기

오른쪽 패널에 키가 알파벳 순으로 정렬된 동일한 JSON이 표시됩니다. 중첩된 객체는 재귀적으로 정렬됩니다. 유효하지 않은 JSON은 오류를 표시합니다.

3

복사 또는 다운로드

결과를 가져오려면 복사 또는 다운로드를 사용하세요. 정렬 없이 형식화하려면 JSON 포매터를, 축소하려면 JSON 축소기를 사용하세요.

JSON 정렬 예제

JSON 객체 키를 알파벳 순으로 정렬하는 예제입니다. 중첩된 객체는 재귀적으로 정렬됩니다.

예제: 정렬되지 않은 키를 가진 가입자 레코드

입력 (임의의 순서의 키):

입력

정렬된 출력:

정렬된 출력

키 순서가 중요한 경우

키가 정렬되어 있으면 git diff가 더 깨끗합니다: 변경 사항이 재정렬된 줄에 묻히지 않고 눈에 띕니다. 일부 시스템은 해싱이나 서명을 위해 JSON 직렬화를 사용합니다; 정렬된 키는 출력을 결정론적으로 만듭니다. JavaScript에서 JSON.stringify는 키 순서를 보장하지 않습니다. 이 도구는 입력 순서에 관계없이 일관된 출력을 제공합니다.

자주 묻는 질문

JavaScript에서 JSON 키를 정렬하려면 어떻게 하나요?

JSON.parse()에 reviver 함수를 사용하거나 Object.keys().sort()로 정렬된 키를 가진 새 객체를 재귀적으로 구성할 수 있습니다. 이 도구가 자동으로 처리해 줍니다 — JSON을 붙여넣으면 즉시 정렬된 결과를 얻을 수 있습니다.

정렬하면 데이터가 변경되나요?

아니요. 키의 순서만 변경됩니다. 값, 타입, JSON 구조는 완전히 동일하게 유지됩니다. 결과는 입력과 의미적으로 동일합니다.

JSON 키를 정렬해야 하는 이유는 무엇인가요?

정렬된 키는 git diff를 더 읽기 쉽게 만들고 (실제 변경사항이 재정렬 속에 묻히지 않음), JSON 해싱을 결정론적으로 만들며, 설정 파일이나 API 응답을 생성할 때 일관된 출력을 보장합니다.

배열도 정렬되나요?

아니요. 배열은 절대 정렬되지 않습니다 — 순서가 데이터의 일부입니다. 이 도구는 JSON 객체의 키만 정렬하며 배열 요소는 정렬하지 않습니다.

데이터가 서버로 전송되나요?

아니요. 모든 정렬은 브라우저에서 로컬로 처리됩니다. 서버로 전송, 저장 또는 기록되는 데이터는 없습니다.

관련 도구

JSON 구문에 대해서는 RFC 8259MDN을 참조하세요. json.org의 JSON 사양이 형식을 정의합니다. 명령줄 처리를 위해 jq가 정렬을 지원합니다. Git diff는 정렬된 키로 더 깔끔한 비교를 합니다. JSON.stringify(), Lodash sortBy, Postman도 참조하세요.