JSON을 비교하는 방법
- 왼쪽에 원본 JSON을, 오른쪽에 변경된 JSON을 붙여넣거나 각 영역에 파일을 끌어다 놓습니다.
- 요약과 차이점 목록을 확인합니다. 추가, 삭제, 변경된 모든 값이
$.users[2].email같은 경로와 함께 표시됩니다. - 아래로 스크롤해 나란히 보기에서 변경 사항을 앞뒤 맥락과 함께 확인합니다. 리스트 항목의 순서가 중요하지 않다면 배열 순서 무시를 선택하세요.
텍스트 비교가 아닌 의미 기반 JSON 비교
일반 텍스트 diff는 키의 위치가 바뀌거나, 들여쓰기가 다르거나, 숫자를 다르게 표기하기만 해도 변경으로 표시합니다. 이 JSON diff는 데이터 자체를 비교합니다.
- 키 순서 무시 –
{"a":1,"b":2},{"b":2,"a":1}두 값은 같습니다. - 서식 무시 – 공백, 줄바꿈, 들여쓰기는 차이로 보지 않습니다.
- 숫자는 값으로 비교 –
1.0,1두 값은 같습니다. - 배열 항목 자동 매칭 – 항목 하나를 삽입해도 뒤따르는 모든 항목이 변경으로 표시되지 않으며, 수정된 객체는 가장 비슷한 객체와 짝지어집니다.
- 배열 순서 무시 – 배열을 순서 없는 집합으로 비교합니다. 태그, ID, 권한 목록에 유용합니다.
비교 결과 보는 법
| 표시 | 의미 | 경로가 가리키는 위치 |
|---|---|---|
| 추가됨 | 변경된 JSON에만 있는 값 | 변경된 JSON에서의 위치 |
| 삭제됨 | 원본 JSON에만 있는 값 | 원본 JSON에서의 위치 |
| 변경됨 | 두 문서 모두 키가 있지만 값이나 타입이 다름 | 변경된 JSON에서의 위치 |
나란히 보기에서는 일치하는 줄이 서로 마주 보도록 두 문서를 키 정렬 상태로 포맷합니다. 변경되지 않은 긴 구간은 접혀 있으며, 변경되지 않은 줄 숨기기를 해제하면 모두 표시됩니다.
자주 묻는 질문
키 순서가 결과에 영향을 주나요?
아니요. JSON 객체는 정의상 순서가 없으므로 비교할 때 키 순서는 무시됩니다. 배열은 순서가 있는 것으로 취급되며, ‘배열 순서 무시’를 선택한 경우에만 순서를 무시합니다.
큰 JSON 파일도 비교할 수 있나요?
네. 비교는 브라우저에서 실행되며 처음 200개의 차이점을 보여 주고, 버튼을 눌러 전체를 볼 수 있습니다. 나란히 보기는 최대 5,000줄까지 표시합니다.
코드에서 JSON을 비교하려면 어떻게 하나요?
Python에서는 json.loads(a) == json.loads(b)로 동등성을 확인할 수 있습니다. JavaScript에는 내장된 깊은 비교 기능이 없지만 Lodash 같은 라이브러리가 _.isEqual(a, b)를 제공합니다. 명령줄에서는 diff <(jq -S . a.json) <(jq -S . b.json) 명령으로 서로 다른 줄을 확인할 수 있습니다.
데이터가 업로드되나요?
아니요. 두 문서는 브라우저에서 로컬로 비교되며 기기 밖으로 전송되지 않습니다.