Compare structured data

JSON Diff 비교기

두 JSON의 구조와 값을 재귀적으로 비교해 달라진 경로를 추가·삭제·변경으로 구분합니다.

광고

JSON Diff 비교기 작동 원리

JSON Diff는 두 텍스트를 줄 단위로 대조하는 대신 먼저 표준 JSON 문법으로 해석한 뒤 객체의 키와 배열 인덱스를 따라 재귀적으로 이동합니다. 한쪽에만 존재하는 키는 추가 또는 삭제, 양쪽에 있지만 값이나 자료형이 다른 항목은 변경으로 표시합니다. 경로는 루트를 뜻하는 $에서 시작하고 객체 키는 점, 배열 위치는 대괄호로 표현하므로 API 응답의 어느 위치가 달라졌는지 찾기 쉽습니다. 객체 키 순서나 공백·줄바꿈은 데이터 의미가 아니므로 차이로 계산하지 않습니다.

이 페이지의 계산과 변환은 모두 현재 브라우저에서 실행됩니다. 원문과 결과를 ReadyTools 서버에 전송하거나 데이터베이스에 저장하지 않으며, 입력 내용은 localStorage에도 기록하지 않습니다. 다만 운영체제나 브라우저의 클립보드 기록, 확장 프로그램, 화면 공유 기능은 사이트 밖의 영역이므로 민감한 데이터는 테스트용으로 바꾸어 사용하는 편이 안전합니다.

JSON Diff 비교기 사용 방법

입력 형식 확인

페이지에 표시된 입력 예시와 형식을 확인하고 분석하거나 변환할 데이터를 붙여 넣습니다. 오류 안내가 나오면 강조된 항목의 문법과 범위를 먼저 확인하세요.

브라우저에서 실행

실행 버튼을 누르면 외부 API 호출 없이 현재 탭에서 처리됩니다. 모바일에서는 완료 후 결과 카드로 자동 이동하며 키보드만으로도 모든 항목을 조작할 수 있습니다.

결과 검토·복사

결과의 구조와 주의사항을 확인한 뒤 복사 버튼을 사용합니다. 실제 프로젝트에 반영하기 전에는 대상 언어, 서비스와 데이터 규칙에 맞는지 다시 테스트하세요.

구체적인 상황으로 이해하는 활용 예시

다음 세 상황은 도구의 처리 과정과 결과 해석을 설명하기 위한 가상 예시입니다. 입력 조건을 바꾸면 결과도 달라지므로 자신의 조건과 비교해 확인하세요.

1. 숫자 하나가 바뀐 응답 비교

기준 {"count":1}과 비교 {"count":2}를 넣으면 $.count 경로의 변경 1건입니다. 값 1과 2를 비교하는 것이므로 들여쓰기나 줄바꿈을 다르게 써도 변경 수가 늘지 않습니다. 이 결과는 문법상 값의 차이를 보여 주며 API의 계약상 허용되는 변경인지는 별도 판단해야 합니다.

2. 속성이 하나 추가된 경우

기준 {"id":1}과 비교 {"id":1,"active":true}에서는 $.active의 추가 1건을 기대할 수 있습니다. 두 객체의 id는 같으므로 변경에 포함되지 않습니다. 반대로 입력 위치를 바꾸면 같은 차이가 삭제로 표시되므로 기준 버전과 비교 버전이 어느 쪽인지 먼저 확인하세요.

3. 배열 순서만 바뀐 경우

기준 [1,2]와 비교 [2,1]은 원소 종류가 같아도 인덱스 0과 1에서 각각 값이 달라 2건의 변경으로 표시됩니다. 이 도구는 배열을 집합처럼 정렬해서 비교하지 않습니다. 순서가 의미 없는 목록이라면 비교 전에 같은 정렬 기준으로 맞춰야 의미 없는 차이를 줄일 수 있습니다.

배포 전후 API 응답을 비교하거나 설정 파일 두 버전의 차이를 검토할 때 유용합니다. 배열은 순서가 의미 있는 데이터로 취급하므로 같은 객체가 다른 인덱스로 이동하면 여러 변경으로 보일 수 있습니다. 결과가 많으면 먼저 상위 경로를 확인하고, 예상하지 못한 자료형 변경이나 삭제 항목을 우선 검토하세요. JSON Schema 검증이나 의미 기반 배열 매칭은 제공하지 않으므로 계약 검증이 필요할 때는 별도의 테스트와 함께 사용해야 합니다.

주의사항

비밀키, 액세스 토큰과 개인정보가 포함된 JSON은 공동 화면이나 클립보드에 남기지 마세요. 중복 키가 있는 JSON은 파싱 과정에서 마지막 값만 남을 수 있고, 배열 항목의 위치 이동은 단순 값 변경처럼 보일 수 있습니다. 결과는 검토 보조 자료이며 데이터 마이그레이션 명령을 자동으로 만들거나 적용하지 않습니다.

광고

JSON Diff 비교기 FAQ

공백이나 들여쓰기 차이도 표시하나요?

아니요. JSON 값으로 파싱한 뒤 비교하므로 보기 형식만 다른 경우에는 동일하게 판단합니다.

배열 순서가 바뀌면 어떻게 되나요?

배열은 인덱스별로 비교하므로 순서가 바뀌면 해당 위치의 변경으로 표시됩니다.

JSON 문법 오류도 찾을 수 있나요?

각 입력을 파싱할 때 오류 위치에 관한 브라우저 메시지를 보여주지만 완전한 린터나 스키마 검사기는 아닙니다.

입력한 데이터가 서버에 저장되나요?

아니요. 입력과 변환은 현재 브라우저의 JavaScript에서만 처리합니다. 원문과 결과를 서버나 데이터베이스로 전송하지 않으며 localStorage에도 저장하지 않습니다.

큰 파일이나 긴 코드를 넣어도 되나요?

브라우저 멈춤과 메모리 사용을 줄이기 위해 텍스트 입력은 500,000자로 제한합니다. 대용량 로그나 프로젝트 전체 파일은 전용 로컬 개발 도구에서 나누어 처리하세요.

광고

관련 개발 도구