Class MoveOperation

  • All Implemented Interfaces:
    com.fasterxml.jackson.databind.JsonSerializable, JsonPatchOperation

    public class MoveOperation
    extends DualPathOperation
    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" } ]
     
    • Constructor Detail

      • MoveOperation

        public MoveOperation​(com.github.fge.jackson.jsonpointer.JsonPointer from,
                             com.github.fge.jackson.jsonpointer.JsonPointer path)
    • Method Detail

      • apply

        public com.fasterxml.jackson.databind.JsonNode apply​(com.fasterxml.jackson.databind.JsonNode node)
                                                      throws JsonPatchException
        Description copied from interface: JsonPatchOperation
        Apply this operation to a JSON value
        Parameters:
        node - the value to patch
        Returns:
        the patched value
        Throws:
        JsonPatchException - operation failed to apply to this value