사용 방법
- 원본 JSON을 왼쪽에, 변경된 JSON을 오른쪽에 붙여넣거나 예제를 사용해 보세요.
- 배열 비교 방식을 선택하세요. 위치 기준으로 비교하거나, 삽입된 항목이 한 번만 보고되도록 항목을 일치시켜 비교합니다.
- 차이를 목록이나 나란히 보기로 확인하세요. 각 차이에는 루트($)부터의 경로가 표시됩니다.
- 보고서를 복사해 티켓이나 코드 리뷰에 붙여넣으세요.
작동 방식
두 문서는 텍스트가 아닌 데이터로 파싱되어 비교됩니다. 객체는 키별로 비교되므로 키 순서, 공백, 들여쓰기는 중요하지 않습니다. 숫자는 값으로 비교되므로 1과 1.0은 같습니다.
각 차이에는 JSONPath 표현식처럼 작성된 경로가 있습니다. $는 루트, .name은 속성, [2]는 배열 인덱스이며, 단순한 이름이 아닌 키는 $["first-name"]처럼 따옴표로 표시됩니다. 차이 유형은 추가됨(오른쪽에만 있음), 제거됨(왼쪽에만 있음), 변경됨(유형 동일, 값 다름), 유형 변경됨(예: 숫자 44.9가 문자열 "44.90"이 되거나 값이 null이 됨)의 네 가지로 보고됩니다. 객체나 배열 전체가 추가되거나 제거되면 필드별로 한 번씩 보고하지 않고 해당 경로에서 한 번만 보고합니다.
배열은 기본적으로 위치별로 비교됩니다. 항목 0은 항목 0과, 항목 1은 항목 1과 비교합니다. 시작 부분에 항목이 삽입되면 그 뒤의 모든 항목이 변경된 것처럼 보입니다. ‘이동된 항목 일치’는 먼저 동일한 항목의 최장 공통 부분 수열을 사용하여 두 배열을 정렬하므로 삽입이나 삭제는 한 번만 보고되고 나머지 항목은 서로 짝지어집니다. 추가된 항목은 오른쪽의 인덱스를 사용하고, 제거된 항목은 왼쪽의 인덱스를 사용합니다. 매우 큰 배열(약 200만 개 항목 쌍 초과)에서는 일치 작업을 건너뛰고 위치별로 비교합니다.
목록의 키 경로는 각 객체 내에서 알파벳순으로 정렬됩니다. 최대 2,000개의 차이가 표시되며 복사된 보고서에는 항상 모든 차이가 포함됩니다.
예시
API 변경 확인
같은 주문에 대해 어제와 오늘의 응답을 비교합니다. 비교 결과에는 $.status가 'pending'에서 'shipped'로 변경되고, $.total의 유형이 숫자에서 문자열로 바뀌고, $.coupon이 제거되고 $.customer.phone이 추가된 내용이 표시됩니다.
설정 드리프트
스테이징과 프로덕션 환경의 JSON 설정을 붙여넣으세요. 키 순서는 무시되므로, 파일이 서로 다른 도구로 저장되었더라도 $.cache.ttl 300 → 60 같은 실제 차이만 표시됩니다.
항목이 삽입된 목록
상품 목록 맨 앞에 새 항목이 추가되었습니다. 위치 기준으로 비교하면 모든 상품이 변경된 것처럼 보이지만, “이동된 항목 일치”를 사용하면 “추가됨 $[0]” 한 건만 표시됩니다.
자주 묻는 질문
텍스트 diff와 무엇이 다른가요?
텍스트 diff는 줄 단위로 비교하므로 키 순서를 바꾸거나 형식을 다시 지정하면 변경으로 표시됩니다. 이 도구는 파싱된 데이터를 비교하므로 값, 타입, 구조의 차이만 보고됩니다.
항목 하나를 삽입했는데 배열에 변경 사항이 많이 표시되는 이유는 무엇인가요?
“위치 기준” 모드에서는 같은 인덱스의 항목끼리 비교하므로, 항목이 하나 삽입되면 그 뒤의 모든 항목이 밀립니다. “이동된 항목 일치”로 전환하면 동일한 항목을 먼저 맞춥니다.
“1”과 1은 같게 처리되나요?
아닙니다. 하나는 문자열이고 다른 하나는 숫자이므로 타입 변경으로 보고됩니다. 타입이 같은 값은 정확히 비교됩니다.
매우 큰 파일도 비교할 수 있나요?
몇 메가바이트 크기의 파일은 처리할 수 있지만, 모든 작업이 브라우저 메모리에서 처리되므로 매우 큰 문서는 휴대폰에서 느릴 수 있습니다.
개인정보 보호
두 문서는 브라우저에서만 파싱되고 비교됩니다. 업로드되거나 저장되거나 분석에 포함되지 않습니다.