JSON 비교(Diff)
두 JSON 문서를 비교해 추가·삭제·변경된 모든 키를 전체 경로와 함께 보여줍니다 — 100% 브라우저에서 실행되며 업로드되지 않습니다.
+ 추가됨 · − 삭제됨 · ~ 변경됨
~ roles[1]: "user" → "editor"~ age: 36 → 37+ active = true
🔒 두 JSON 문서는 브라우저에서 비교되며 업로드되지 않습니다.
이 JSON 비교 도구가 하는 일
원본 문서를 A 상자에, 변경된 문서를 B 상자에 붙여넣으면, 이 도구가 두 구조를 재귀적으로 훑어 무엇이 달라졌는지 정확히 나열합니다. 모든 차이는 세 가지 유형 중 하나로 표시됩니다. 추가됨(B에만 있는 키나 배열 요소), 삭제됨(A에만 있음), 변경됨(양쪽에 있지만 값이 다름)입니다. 각 항목에는 값까지의 경로가 함께 표시되며, 객체 키는 점 표기법, 배열 인덱스는 대괄호 표기법을 사용해 user.roles[0]처럼 읽힙니다. 비교는 깊고 값 중심이라, 키 순서만 다르고 내용이 같은 두 문서는 동일한 것으로 처리됩니다.
경로와 비교 방식
두 텍스트 상자는 JSON으로 파싱되어 입력하는 즉시 실시간으로 비교되므로 따로 누를 버튼이 없습니다. 객체는 키로, 배열은 인덱스로 맞춰 비교하며, 값의 유형이 바뀌면 — 예를 들어 객체가 숫자로 — 그 값 전체를 여러 하위 차이로 쏟아내지 않고 하나의 변경됨 항목으로 보고합니다. 원시 값은 엄격하게 비교되고 null은 고유한 값으로 취급되므로 null을 0으로 바꾸면 실제 변경으로 인식됩니다. 어느 한쪽에 잘못된 JSON이 있으면 어느 쪽을 고쳐야 하는지 안내 메시지가 표시되고, 둘 다 정상이면 전체 차이 목록을 클립보드로 복사할 수 있습니다.
자주 묻는 질문
경로는 어떤 형식으로 표시되나요?
객체 키는 점 표기법, 배열 요소는 대괄호 인덱스를 사용하며 중첩 데이터에서는 이를 결합합니다. 예를 들어 user.roles[0]은 user 객체 안 roles 배열의 첫 번째 요소를 뜻합니다. 최상위 값의 변경은 (루트)로 표시됩니다.
키 순서나 공백이 결과에 영향을 주나요?
아니요. 문서를 먼저 파싱하므로 서식, 들여쓰기, 객체 내 키 순서는 무시됩니다. 키와 값의 실제 차이만 보고되며, 배열은 인덱스로 비교하므로 배열 순서는 결과에 영향을 줍니다.
입력한 JSON이 서버로 업로드되나요?
아니요. 두 문서는 전적으로 브라우저의 자바스크립트로 파싱되고 비교됩니다. 붙여넣은 내용은 어디로도 전송·저장·업로드되지 않습니다.