JSON 구조 비교(diff) 도구
두 JSON을 키 단위로 재귀 비교해 추가·삭제·값변경·타입변경을 찾아냅니다. 공백·줄바꿈·키 순서는 무시합니다.
첫 번째 JSON (A)
두 번째 JSON (B)
차이가 있습니다
2곳
추가 1 · 삭제 0 · 값변경 1 · 타입변경 0
tools값 변경
− 1000
+ 1680
categories[2]추가됨
+ "unit"
텍스트가 아니라 값을 비교합니다. 공백·줄바꿈·키 순서가 달라도 구조가 같으면 차이가 없다고 봅니다. dev/code-diff는 줄 단위 텍스트 비교라 들여쓰기만 달라져도 여러 줄이 달라진 것처럼 보이는데, 여기서는 그런 잡음이 안 낍니다.
배열은 인덱스로 비교합니다. 배열 중간에 원소 하나를 끼워 넣으면 그 뒤 원소가 모두 밀려 실제로는 하나만 늘었는데도 여러 곳이 바뀐 것처럼 나올 수 있습니다. 객체는 키로 정확히 짝지어 비교하지만, 배열 원소에는 이름이 없어 생기는 한계입니다.
사용 방법
- 1첫 번째 JSON(A)을 붙여넣습니다.
- 2두 번째 JSON(B)을 붙여넣습니다.
- 3추가·삭제·값변경·타입변경이 경로별로 나열됩니다.
자주 묻는 질문
두 JSON을 파싱한 뒤 값을 재귀적으로 비교합니다. 객체는 키로 짝을 지어 비교하고, 배열은 같은 인덱스끼리 비교합니다. 공백·줄바꿈·키 순서가 달라도 구조가 같으면 차이로 잡지 않습니다.
code-diff는 텍스트를 줄 단위로 비교합니다. 그래서 JSON의 들여쓰기나 줄바꿈 방식만 바뀌어도 실제로는 같은 데이터인데 여러 줄이 달라진 것처럼 보입니다. 이 도구는 파싱한 값을 비교하므로 그런 표기상의 차이를 무시하고 실제 데이터 구조의 차이만 보여줍니다.
같은 타입 안에서 값만 바뀌면(예: 숫자 1 → 2) "값 변경"으로, 타입 자체가 바뀌면(예: 숫자 1 → 문자열 "1", 혹은 null → 값) "타입 변경"으로 따로 표시합니다. 타입 변경은 스키마가 바뀌었을 가능성이 커 구분해서 보여줍니다.
네. 배열 원소는 이름이 없어 같은 인덱스(순서)끼리 비교합니다. 그래서 배열 중간에 원소 하나를 끼워 넣으면 그 뒤 원소가 전부 밀려 실제로는 하나만 늘었는데도 여러 곳이 바뀐 것처럼 나올 수 있습니다.
알아두면 좋은 점
- 배열은 인덱스 기준으로 비교합니다. 원소 재정렬이나 중간 삽입은 실제보다 더 많은 차이로 보일 수 있습니다.
- 아주 큰 JSON은 브라우저에서 파싱·비교하는 데 시간이 걸릴 수 있습니다.
함께 보면 좋은 도구
마지막 검증: 2026년 9월 3일 · 결과는 참고용 추정치입니다.