홈 › 개발·웹 도구

두 JSON 비교

글자 단위 비교(diff)와 달리 키 순서나 들여쓰기가 달라도 같은 JSON이면 ‘같아요’라고 알려 줘요.

입력한 내용은 서버로 보내지 않고 이 기기에서만 처리돼요
비교 결과

글자가 아니라 ‘값’을 비교해요

일반 글 비교(diff)는 키 순서가 바뀌거나 들여쓰기만 달라도 전부 다르다고 표시해요. 이 도구는 두 JSON을 실제 데이터로 읽은 다음 객체는 키 이름끼리, 배열은 항목끼리 맞춰 비교해서 정말 달라진 값만 보여 줘요. 배포 전후 설정 파일, 두 서버의 API 응답, 테스트의 기대값과 실제값을 비교할 때 좋아요. 각 차이에는 /db/host처럼 위치를 뜻하는 경로(JSON Pointer, RFC 6901)가 붙어요.

배열 비교 방식

‘같은 항목끼리 맞춰 비교’가 켜져 있으면 두 배열에서 가장 긴 공통 순서(LCS)를 찾아, 중간에 끼워 넣은 항목은 ‘추가’, 빠진 항목은 ‘삭제’로 보여 줘요. 예를 들어 ["login","search"] → ["login","share","search"]는 share 하나만 추가예요. 끄면 0번째는 0번째끼리, 1번째는 1번째끼리 비교해요. 같은 자리에서 내용만 바뀐 객체는 안쪽까지 들어가 바뀐 필드만 알려 줘요.

JSON Patch와 Merge Patch

숫자 1과 1.0은 JSON에서 같은 값이라 같다고 봐요. 아주 큰 배열(항목 수의 곱이 400만 이상)은 속도를 위해 자리끼리 비교해요. 모든 처리는 이 브라우저에서만 해요.

참고한 자료

자주 묻는 질문

키 순서만 바뀌었는데 같다고 나와요.

맞아요. JSON 객체는 키 순서에 의미가 없어서 같은 데이터로 봐요. 순서까지 비교하려면 ‘텍스트 비교’ 도구를 쓰세요.

JSON Patch를 그대로 적용해도 되나요?

이 패치는 A를 정확히 B로 바꾸도록 순서까지 맞춰 만들어요. 다만 그 사이 A가 바뀌었다면 경로가 어긋날 수 있으니 같은 A에 적용하세요.

배열 순서가 바뀐 것만 무시할 수 있나요?

지금은 순서를 의미 있게 봐요. 순서만 다른 배열은 일부 항목이 삭제·추가로 보여요.

함께 쓰면 좋은 도구