Class JsonMergePatch
- java.lang.Object
-
- com.github.fge.jsonpatch.mergepatch.JsonMergePatch
-
- All Implemented Interfaces:
com.fasterxml.jackson.databind.JsonSerializable
- Direct Known Subclasses:
NonObjectMergePatch,ObjectMergePatch
@ParametersAreNonnullByDefault public abstract class JsonMergePatch extends Object implements com.fasterxml.jackson.databind.JsonSerializable
Implementation of JSON Merge Patch (RFC 7386)JSON Merge Patch is a "toned down" version of JSON Patch. However, it covers a very large number of use cases for JSON value modifications; its focus is mostly on patching JSON Objects, which are by far the most common type of JSON texts exchanged on the Internet.
Applying a JSON Merge Patch is defined by a single, pseudo code function as follows (quoted from the RFC; indentation fixed):
define MergePatch(Target, Patch): if Patch is an Object: if Target is not an Object: Target = {} # Ignore the contents and set it to an empty Object for each Name/Value pair in Patch: if Value is null: if Name exists in Target: remove the Name/Value pair from Target else: Target[Name] = MergePatch(Target[Name], Value) return Target else: return Patch
-
-
Constructor Summary
Constructors Constructor Description JsonMergePatch()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract com.fasterxml.jackson.databind.JsonNodeapply(com.fasterxml.jackson.databind.JsonNode input)Apply the patch to a given JSON valuestatic JsonMergePatchfromJson(com.fasterxml.jackson.databind.JsonNode node)Build an instance from a JSON input
-
-
-
Method Detail
-
fromJson
public static JsonMergePatch fromJson(com.fasterxml.jackson.databind.JsonNode node) throws JsonPatchException
Build an instance from a JSON input- Parameters:
node- the input- Returns:
- a JSON Merge Patch instance
- Throws:
JsonPatchException- failed to deserializeNullPointerException- node is null
-
apply
public abstract com.fasterxml.jackson.databind.JsonNode apply(com.fasterxml.jackson.databind.JsonNode input) throws JsonPatchExceptionApply the patch to a given JSON value- Parameters:
input- the value to patch- Returns:
- the patched value
- Throws:
JsonPatchException- never thrown; only for consistency withJsonPatchNullPointerException- value is null
-
-