본문으로 건너뛰기
SDETRole
SDETRole

JSON·데이터

JSON 비교 도구

두 JSON 문서를 의미 기준으로 비교하고 변경마다 경로를 보여 줍니다.

브라우저에서만 실행됩니다 회원가입 불필요

Original (expected)

Modified (actual)

Paste two JSON documents to compare them

Key order is always ignored. Tick “Ignore array order” to compare arrays as unordered sets.

도구 소개

두 API 응답을 단순 텍스트로 비교하면 잡음이 많습니다. 데이터가 같아도 키 순서나 공백이 다르면 변경으로 표시되기 때문입니다. 이 도구는 두 문서를 파싱해 구조를 비교하므로 실제 차이만 보고합니다. 각 차이는 JSONPath 형식의 위치($.user.roles[1])와 유형(added, removed, changed, type-changed)으로 표시되며, 마지막 유형은 "49.99"와 49.99를 혼동하는 전형적인 버그입니다. 실패한 어설션을 설명하거나, API 버전 간 계약 변경을 검토하거나, 스냅샷 업데이트를 승인하기 전에 확인할 때 사용하세요.

사용 방법

  1. 왼쪽에 기대(또는 이전) JSON을, 오른쪽에 실제(또는 새) JSON을 붙여 넣거나 “Load sample”(샘플 불러오기)를 클릭하세요.
  2. 변경 목록을 확인하세요. 각 행에 변경 유형, 경로, 이전 → 이후 값이 표시됩니다.
  3. 역할, 태그, 정렬되지 않은 검색 결과처럼 배열이 사실상 집합이라면 “Ignore array order”(배열 순서 무시)를 체크하세요.
  4. “Side by side”(나란히 보기) 또는 “Unified”(통합 보기)로 전환해 변경을 맥락 속에서 확인하세요. 두 보기 모두 키를 먼저 정렬하므로 순서 변경은 보고되지 않습니다.

JSON 비교 도구 자주 묻는 질문

“changed”와 “type-changed”는 어떻게 다른가요?

“changed”는 JSON 타입은 같고 값만 다른 경우로, 예를 들어 "pending"이 "shipped"로 바뀐 경우입니다. “type-changed”는 숫자가 문자열이 되거나 객체가 null이 되는 것처럼 타입 자체가 다른 경우입니다. 타입 변경은 값이 같아 보여도 엄격한 타입의 클라이언트를 깨뜨리는 계약 버그인 경우가 많습니다.

“Ignore array order”(배열 순서 무시)를 켜면 배열은 어떻게 비교되나요?

왼쪽의 각 요소를 오른쪽에서 완전히 같은 요소와 짝지어 비교합니다. 남은 요소는 각자의 인덱스에서 removed 또는 added로 보고됩니다. 중복도 개수로 세므로 [1, 2, 2]와 [2, 1]은 여전히 다릅니다. 요소를 전체 일치로 짝짓기 때문에 순서 없는 배열 안에서 객체가 변경되면 삭제 하나와 추가 하나로 표시됩니다.

이 경로를 테스트에서 사용할 수 있나요?

네. 단순한 키에는 점 표기법을, 공백이나 기호가 있는 키에는 대괄호 표기법을 사용하므로 JSONPath 테스터에서 그대로 동작하며 REST Assured나 Postman 같은 도구의 JSONPath 어설션에 바로 대응됩니다.

SDETRole 전체에서 검색할 내용을 입력하세요.

Pagefind 전문 검색 · 브라우저에서 실행됩니다 검색 페이지 열기 →