JSON Patch
move operation
For this operation,
from points to the value to move, and
path points to the new location of the moved value.
As for
add:
- the value at the destination path is either created or replaced;
- it is created only if the immediate parent exists;
-
- appends at the end of an array.
It is an error condition if
from does not point to a JSON value.
The specification adds another rule that the
from path must not be
an immediate parent of
path. Unfortunately, that doesn't really work.
Consider this patch:
{ "op": "move", "from": "/0", "path": "/0/x" }
Even though
/0 is an immediate parent of
/0/x, when this
patch is applied to:
[ "victim", {} ]
it actually succeeds and results in the patched value:
[ { "x": "victim" } ]