Package jakarta.json

Interface JsonPatch


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:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
    This enum represents the list of valid JSON Patch operations as defined by RFC 6902.
  • Method Summary

    Modifier and Type
    Method
    Description
    <T extends JsonStructure>
    T
    apply(T target)
    Applies the patch operations to the specified target.
    Returns the JsonPatch as JsonArray.
  • Method Details

    • 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