위키득계정 ↗
기술

JSON 병합 패치

JSON 병합 패치기술
명세
RFC 7396
주요 용도
JSON 문서 부분 갱신
객체 항목의 null
해당 항목 삭제
미디어 유형
application/merge-patch+json
JSON 병합 패치는 바꾸려는 JSON 객체와 비슷한 구조로 부분 변경을 표현하는 형식이다. 새 항목은 추가하고 기존 항목은 갱신하며, 객체 항목에 지정한 null은 그 항목을 삭제한다는 의미로 사용한다.

바꿀 부분을 객체로 전달하기

연산 이름과 경로를 나열하는 대신 변경할 항목을 객체 구조에 담는다. 패치에 없는 항목은 유지하고, 중첩 객체에는 같은 병합 규칙을 재귀적으로 적용한다. 대상이 객체가 아닌데 객체 패치를 받으면 빈 객체를 기준으로 병합한다.

삭제와 null 값의 관계

객체 안에서 null은 값을 저장하는 지시가 아니라 항목을 제거하는 지시다. 이미 없는 항목을 삭제하려 해도 새 항목이 생기지 않는다. 따라서 명시적인 null 값을 자주 저장해야 하는 자료에는 이 표현 방식이 적합하지 않을 수 있다.

배열과 전체 교체

패치 자체가 객체가 아니면 해당 대상 전체를 패치 값으로 바꾼다. 배열도 원소별로 병합하지 않으므로 일부 원소만 고치려면 완성된 배열을 전달하거나 다른 변경 형식을 사용해야 한다. 병합은 자료 값에 적용되며 원래 공백이나 객체 항목의 표시 순서를 보존하는 작업은 아니다.

관련 문서

JSON 패치 / JSON 포인터 / JSON / HTTP / 배열 / REST