JSON Merge Patch 적용기
RFC 7396 JSON Merge Patch를 원본 JSON에 적용해 결과를 보여줍니다. 패치도 대상과 같은 모양의 객체로 쓰고, 키를 null로 두면 그 키를 지운다는 점이 dev/json-patch(RFC 6902)와 다릅니다.
원본 JSON
패치 JSON(같은 모양으로, 지울 키는 null)
병합 완료
결과 문서
아래가 병합된 결과입니다
결과 JSON
{
"name": "도구스",
"tools": 1680,
"contact": {
"email": "new@example.com"
}
}배열은 병합되지 않고 통째로 교체됩니다. 객체만 키 단위로 재귀 병합되고, 값이 null인 키는 지워집니다. 배열 원소 하나만 바꾸거나, 값 자체가 null이어야 하는 경우를 표현하려면 dev/json-patch(RFC 6902)를 쓰세요.
사용 방법
- 1원본 JSON 문서를 붙여넣습니다.
- 2병합할 패치 JSON(대상과 같은 모양의 객체)을 붙여넣습니다.
- 3지우고 싶은 키는 값을 null로 씁니다.
- 4병합된 결과 문서가 나옵니다.
자주 묻는 질문
JSON Patch(RFC 6902)는 add·remove 같은 연산을 배열로 나열하지만, Merge Patch(RFC 7396)는 원하는 최종 모양을 대상과 같은 구조의 JSON 객체로 그대로 씁니다. 짧고 읽기 쉬운 대신 표현할 수 있는 변경이 "값 교체"와 "키 삭제(null)" 뿐이라 더 단순합니다.
RFC 7396이 그렇게 정의합니다. 패치의 어떤 키 값이 null이면 원본에서 그 키·값 쌍을 통째로 지우라는 뜻입니다. 그래서 이 방식은 "원래 값이 null이었다"와 "이 키를 지워라"를 구분하지 못합니다 — 그 차이가 중요하면 JSON Patch의 replace 연산을 써야 합니다.
병합되지 않고 통째로 교체됩니다. 객체만 키 단위로 재귀 병합되고, 배열은 (다른 스칼라 값처럼) 패치의 값으로 그대로 덮어씁니다. 배열 원소 하나만 바꾸고 싶어도 배열 전체를 새로 써야 합니다.
병합하지 않고 대상을 패치 값으로 통째로 교체합니다. 패치가 문자열·숫자·배열·null이면 결과도 그 값 그대로입니다.
알아두면 좋은 점
- 별도의 법령·요율 검증이 필요 없는 순수 스펙 구현입니다. RFC 7396 부록 A의 공식 예제 표로 동작을 검증했습니다.
- HTTP PATCH 요청에 이 형식을 쓸 때는 Content-Type을 application/merge-patch+json으로 지정해야 합니다(json-patch+json과 다릅니다).
함께 보면 좋은 도구
JSON Patch 적용RFC 6902 JSON Patch 문서(add·remove·replace·move·copy·test)를 원본 JSON에 순서대로 적용해 결과를 보여줍니다.JSON 비교두 JSON을 키 단위로 재귀 비교해 추가·삭제·값변경·타입변경을 찾아냅니다.JSON 포맷JSON을 보기 좋게 정렬하거나 한 줄로 압축합니다.gitignore 판정.gitignore 규칙과 경로를 넣으면 그 파일이 무시되는지, 어느 줄이 마지막으로 이겼는지 알려줍니다.울프람 규칙규칙 번호 0~255를 8비트로 풀어 세 칸 이웃에 대응시키고 세대를 쌓아 무늬를 그립니다.
마지막 검증: 2026년 9월 10일 · 결과는 참고용 추정치입니다.