콘텐츠로 건너뛰기
ToolsMinify logo
개발자 도구

JSON Diff 검사기

브라우저에서 두 JSON을 구조적으로 비교 - 계정·업로드 없음.

JSON Diff 검사기 정보

브라우저에서 두 JSON을 구조적으로 비교 - 계정·업로드 없음. 텍스트 Diff 검사기와 달리 양쪽을 파싱해 객체는 키(순서 무관), 배열은 인덱스로 순회합니다. added, removed, changed, type-changed 경로 리포트. 키만 재정렬되고 값이 같으면 동일. merge 전 API 응답, config 픽스처, webhook payload diff에 사용. 한쪽이 minify면 JSON 미니파이어, 단일 경로는 JSONPath 테스터와 함께.

JSON Diff 검사기 사용 방법

  1. 왼쪽(원본)·오른쪽(수정) JSON 붙여 넣기, 또는 키 재정렬 vs 실제 변경 샘플 로드.
  2. 필요하면 어느 한쪽 포맷 또는 Swap으로 좌우 반전.
  3. added, removed, changed, type-changed, equal leaf 개수 확인. 표에 다른 모든 경로.
  4. CI 메모·PR 코멘트용 텍스트 또는 JSON 리포트 복사.
  5. 서버 전송 없음. 잘못된 JSON은 실패한 쪽과 줄·열 보고.

JSON Diff 검사기 예시

키 재정렬은 동일

{"b":2,"a":1}과 {"a":1,"b":2}는 변경 0. 객체 키 순서는 의도적으로 무시.

추가·변경 필드

왼쪽 {"id":1,"name":"Ada"} vs 오른쪽 {"id":1,"name":"Ada Lovelace","email":"ada@example.com"} → $.name changed, $.email added.

중첩 경로·배열 인덱스

배열은 인덱스로 비교. ["a","b"] vs ["a","c"]는 $.tags[1] changed, 전체 줄 rewrite 아님.

타입 변경

{"n":1} vs {"n":"1"}는 type_changed: number→string. 텍스트 diff는 따옴표만 보일 수 있음.

애매한 키

일반 식별자가 아닌 키는 $["content-type"] 같은 bracket 경로로 리포트가 명확.

일반적인 사용 사례

  • 백엔드 배포 후 두 API 응답 diff
  • merge 전 config·feature-flag JSON 확인
  • contract test webhook payload 픽스처 검토
  • 텍스트 diff에 묻히는 타입 drift(number vs string) 발견
  • 키 재정렬만으로 의미가 바뀌지 않았는지 확인

JSON Diff 검사기에 대한 자주 묻는 질문

텍스트 Diff 검사기와 무엇이 다른가요?
텍스트 Diff는 줄·단어 비교. 이 도구는 JSON 파싱 후 구조 비교: 객체 키 순서 무관, 배열은 인덱스, 각 변경에 JSONPath 스타일 경로. 산문·코드는 텍스트, JSON payload는 이 도구.
키 순서가 중요한가요?
객체는 아니요. {"a":1,"b":2}와 {"b":2,"a":1}은 동일. 배열은 인덱스 비교라 순서가 중요.
added, removed, changed, type-changed 의미는?
Added는 오른쪽에만 있는 경로. Removed는 왼쪽만. Changed는 같은 타입 다른 값. Type-changed는 JSON 타입이 다름(예: number vs string).
배열은 어떻게 비교하나요?
처음부터 인덱스별. 항목을 다른 인덱스로 옮기면 해당 인덱스에서 remove+add처럼 보임. fuzzy 배열 매칭 없음.
JSON이 업로드되나요?
아니요. diff는 이 탭에서만. 두 문서 모두 기기에 유지.
결과를 내보낼 수 있나요?
예. 사람이 읽는 리포트 또는 JSON 리포트(경로, 타입, 값) 복사.
한쪽이 invalid JSON이면?
실패한 쪽과 가능하면 줄·열을 알려 쉼표·따옴표·괄호를 고친 뒤 비교.