JSON Diff 뷰어
두 JSON을 구조적으로 비교 — 어떤 키가 추가·삭제·변경됐는지 정확히 보여 줍니다.
~ $.age30 → 31~ $.roles[1]"editor" → "viewer"~ $.address.zip"04000" → "04001"+ $.address.country"KR"
사용법
- 왼쪽에 원본 JSON, 오른쪽에 변경된 JSON을 붙여넣으세요.
- 경로 기반 변경 목록을 확인하세요.
- JSON 오류가 있는 쪽에 파서 에러가 표시됩니다.
자세한 설명
펼치기접기
일반 텍스트 diff는 JSON을 문자의 줄로 취급하지만, 이 도구는 구조를 이해합니다. 문서 두 개를 붙여넣으면 변경 사항이 유형별 목록으로 나옵니다. 추가된 경로는 초록색, 삭제된 것은 빨간색, 값이 바뀐 것은 호박색으로 표시되고, 각각 $.address.zip 같은 점 표기 경로로 위치를 알려 줍니다. 덕분에 키 순서를 마음대로 바꿔도 거짓 차이가 하나도 생기지 않고, 빠진 필드는 나타나는 즉시 눈에 띕니다. 객체는 키로, 배열은 위치로 대응시키는데, 어떤 구조적 diff에서든 솔직히 알아 둬야 할 점이 이것입니다. 목록 앞쪽에 원소 하나를 끼워 넣으면 그 뒤가 전부 밀리므로, 이어지는 각 인덱스는 이동이 아니라 변경으로 보고됩니다. 모든 처리는 브라우저에서 이루어지며 어느 문서도 업로드되지 않습니다.
자주 묻는 질문
왜 일반 텍스트 diff가 아닌가요?
텍스트 diff는 라인 기준이라 키 순서, 들여쓰기, 콤마 스타일이 다르면 의미 없는 변경이 잡힙니다. JSON Diff는 파싱된 구조를 비교하므로 같은 데이터는 0 변경으로 나옵니다.
경로 표기는 무슨 뜻인가요?
JSONPath 스타일입니다. $는 루트, .key는 속성, [n]은 배열 인덱스입니다. $.posts[0].tags[1]은 첫 글의 두 번째 태그입니다.
배열은 어떻게 비교되나요?
인덱스별로 항목을 비교합니다. 길이가 다르면 뒤쪽 초과분이 추가/삭제로 표시됩니다. 같은 항목이라도 순서가 다르면 해당 인덱스에서 변경으로 잡힙니다.
업로드되나요?
아니요 — 두 JSON 모두 브라우저 안에서 파싱·비교됩니다.
앞에 항목 하나를 끼워 넣었더니 전부 바뀐 것으로 나옵니다.
인덱스 기반 배열 비교가 설계대로 동작한 것입니다. 두 번째 자리에는 예전에 두 번째 항목이 있었는데 이제 첫 번째 항목이 들어 있으므로, 그 뒤의 모든 인덱스가 실제로 이전과 다릅니다. 이동을 인식하는 diff에는 원소마다 안정적인 키가 필요한데, JSON만으로는 그것을 제공하지 않습니다.
객체는 같은데 키 순서만 바꿨습니다. 차이가 나나요?
나지 않습니다. 객체는 키 단위로 비교하므로 키 순서는 여기서 보이지 않습니다. 텍스트 diff 대신 구조적 diff를 쓰는 가장 큰 이유가 이것입니다. 직렬화 도구마다 키 순서가 다르고, 텍스트 diff라면 그것만으로 문서 전체가 바뀌었다고 보고할 테니까요.
이 주제의 가이드
관련 도구
텍스트 Diff 뷰어
두 텍스트를 비교해 줄·단어 단위로 추가·삭제를 강조해서 보여 줍니다.
텍스트
HTTP 상태 코드 레퍼런스
1xx-5xx 모든 HTTP 상태 코드 검색 — 요약·RFC·사용 시점·흔한 함정 포함.
네트워크
JSON Patch 빌더 (RFC 6902)
source/target 쌍에서 RFC 6902 JSON Patch 생성, 또는 기존 patch를 문서에 적용. add·remove·replace·move·copy·test 작업 지원.
개발
OCSP 응답·요청 디코더
OCSP 응답과 요청을 브라우저에서 해석합니다. 상태, 응답기, 신선도, 논스, 폐기 사유, 동봉된 인증서까지 보여줍니다.
개발
패치 / diff 검사기
통합 diff나 .patch 파일을 분석합니다. 변경된 파일, 파일별 추가·삭제 줄 수, 그리고 git apply를 실패시키는 손상된 헝크를 찾아냅니다.
개발
CRL 디코더 (X.509)
인증서 폐기 목록을 브라우저에서 읽습니다. 발급자, CRL 번호, 유효 구간, 폐기된 일련번호와 사유, 서명 검증까지.
개발