변경을 순서로 표현하는 방법
각 연산 객체는 op에 수행할 동작을, path에 대상 위치를 담는다. 배열 앞에서부터 적용하고 직전 결과를 다음 연산의 대상으로 사용한다. 따라서 같은 연산을 담아도 순서가 달라지면 결과나 성공 여부가 달라질 수 있다. HTTP PATCH 요청의 본문으로 사용할 수 있다.
추가와 교체가 구분되는 이유
add는 객체의 새 항목을 만들거나 기존 항목을 바꾸며, 배열에서는 지정 위치에 값을 끼워 넣는다. 배열 경로 끝의 하이픈은 마지막에 추가한다는 뜻이다. 반면 replace와 remove는 대상 값이 이미 있어야 한다. add도 상위 객체나 배열까지 자동으로 만드는 것은 아니다.
이동과 복사 및 사전 검사
move는 from에서 지정한 값을 제거하고 대상에 넣으며 copy는 원래 값을 유지한다. test는 대상과 제시한 값이 같은지 검사한다. 앞선 검사나 변경이 실패하면 나머지 연산으로 계속 진행하지 않는다. 값을 삭제하는 연산 뒤에서는 배열 인덱스도 달라질 수 있으므로 후속 경로에 영향을 준다.
관련 문서
JSON 포인터 / JSON / HTTP / JSON Schema / 배열 / REST