Module jakarta.json
Package jakarta.json

Interface JsonPatch

  • All Known Implementing Classes:
    JsonPatchImpl

    public interface JsonPatch

    This interface represents an immutable implementation of a JSON Patch as defined by RFC 6902.

    A JsonPatch can be instantiated with Json.createPatch(JsonArray) by specifying the patch operations in a JSON Patch. Alternately, it can also be constructed with a JsonPatchBuilder.

    The following illustrates both approaches.

    1. Construct a JsonPatch with a JSON Patch.

    
       JsonArray contacts = ... // The target to be patched
       JsonArray patch = ...  ; // JSON Patch
       JsonPatch jsonpatch = Json.createPatch(patch);
       JsonArray result = jsonpatch.apply(contacts);
      
    2. Construct a JsonPatch with JsonPatchBuilder.
    
       JsonPatchBuilder builder = Json.createPatchBuilder();
       JsonArray result = builder.add("/John/phones/office", "1234-567")
                                 .remove("/Amy/age")
                                 .build()
                                 .apply(contacts);
      
    Since:
    1.1
    See Also:
    RFC 6902
    • Method Detail

      • apply

        <T extends JsonStructure> T apply​(T target)
        Applies the patch operations to the specified target. The target is not modified by the patch.
        Type Parameters:
        T - the target type, must be a subtype of JsonStructure
        Parameters:
        target - the target to apply the patch operations
        Returns:
        the transformed target after the patch
        Throws:
        JsonException - if the supplied JSON Patch is malformed or if it contains references to non-existing members
      • toJsonArray

        JsonArray toJsonArray()
        Returns the JsonPatch as JsonArray.
        Returns:
        this JsonPatch as JsonArray