Microsoft.AspNetCore.JsonPatch Add operation. Will result in, for example, { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } target location value Remove value at target location. Will result in, for example, { "op": "remove", "path": "/a/b/c" } target location Replace value. Will result in, for example, { "op": "replace", "path": "/a/b/c", "value": 42 } target location value Removes value at specified location and add it to the target location. Will result in, for example: { "op": "move", "from": "/a/b/c", "path": "/a/b/d" } source location target location Copy the value at specified location to the target location. Willr esult in, for example: { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } source location target location Apply this JsonPatchDocument Object to apply the JsonPatchDocument to Apply this JsonPatchDocument Object to apply the JsonPatchDocument to Action to log errors Apply this JsonPatchDocument Object to apply the JsonPatchDocument to IObjectAdapter instance to use when applying Add operation. Will result in, for example, { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } value type target location value Add value to list at given position value type target location value position At value at end of list value type target location value Remove value at target location. Will result in, for example, { "op": "remove", "path": "/a/b/c" } target location Remove value from list at given position value type target location position Remove value from end of list value type target location Replace value. Will result in, for example, { "op": "replace", "path": "/a/b/c", "value": 42 } target location value Replace value in a list at given position value type target location value position Replace value at end of a list value type target location value Removes value at specified location and add it to the target location. Will result in, for example: { "op": "move", "from": "/a/b/c", "path": "/a/b/d" } source location target location Move from a position in a list to a new location source location position target location Move from a property to a location in a list source location target location position Move from a position in a list to another location in a list source location position (source) target location position (target) Move from a position in a list to the end of another list source location position target location Move to the end of a list source location target location Copy the value at specified location to the target location. Willr esult in, for example: { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } source location target location Copy from a position in a list to a new location source location position target location Copy from a property to a location in a list source location target location position Copy from a position in a list to a new location in a list source location position (source) target location position (target) Copy from a position in a list to the end of another list source location position target location Copy to the end of a list source location target location Apply this JsonPatchDocument Object to apply the JsonPatchDocument to Apply this JsonPatchDocument Object to apply the JsonPatchDocument to Action to log errors Apply this JsonPatchDocument Object to apply the JsonPatchDocument to IObjectAdapter instance to use when applying Captures error message and the related entity and the operation that caused it. Initializes a new instance of . The object that is affected by the error. The that caused the error. The error message. Gets the object that is affected by the error. Gets the that caused the error. Gets the error message. Defines the operations that can be performed on a JSON patch document. Initializes a new instance of . The . The for logging . Gets or sets the . Action for logging . The "add" operation performs one of the following functions, depending upon what the target location references: o If the target location specifies an array index, a new value is inserted into the array at the specified index. o If the target location specifies an object member that does not already exist, a new member is added to the object. o If the target location specifies an object member that does exist, that member's value is replaced. The operation object MUST contain a "value" member whose content specifies the value to be added. For example: { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } When the operation is applied, the target location MUST reference one of: o The root of the target document - whereupon the specified value becomes the entire content of the target document. o A member to add to an existing object - whereupon the supplied value is added to that object at the indicated location. If the member already exists, it is replaced by the specified value. o An element to add to an existing array - whereupon the supplied value is added to the array at the indicated location. Any elements at or above the specified index are shifted one position to the right. The specified index MUST NOT be greater than the number of elements in the array. If the "-" character is used to index the end of the array (see [RFC6901]), this has the effect of appending the value to the array. Because this operation is designed to add to existing objects and arrays, its target location will often not exist. Although the pointer's error handling algorithm will thus be invoked, this specification defines the error handling behavior for "add" pointers to ignore that error and add the value as specified. However, the object itself or an array containing it does need to exist, and it remains an error for that not to be the case. For example, an "add" with a target location of "/a/b" starting with this document: { "a": { "foo": 1 } } is not an error, because "a" exists, and "b" will be added to its value. It is an error in this document: { "q": { "bar": 2 } } because "a" does not exist. The add operation. Object to apply the operation to. Add is used by various operations (eg: add, copy, ...), yet through different operations; This method allows code reuse yet reporting the correct operation on error The "move" operation removes the value at a specified location and adds it to the target location. The operation object MUST contain a "from" member, which is a string containing a JSON Pointer value that references the location in the target document to move the value from. The "from" location MUST exist for the operation to be successful. For example: { "op": "move", "from": "/a/b/c", "path": "/a/b/d" } This operation is functionally identical to a "remove" operation on the "from" location, followed immediately by an "add" operation at the target location with the value that was just removed. The "from" location MUST NOT be a proper prefix of the "path" location; i.e., a location cannot be moved into one of its children. The move operation. Object to apply the operation to. The "remove" operation removes the value at the target location. The target location MUST exist for the operation to be successful. For example: { "op": "remove", "path": "/a/b/c" } If removing an element from an array, any elements above the specified index are shifted one position to the left. The remove operation. Object to apply the operation to. Remove is used by various operations (eg: remove, move, ...), yet through different operations; This method allows code reuse yet reporting the correct operation on error. The return value contains the type of the item that has been removed (and a bool possibly signifying an error) This can be used by other methods, like replace, to ensure that we can pass in the correctly typed value to whatever method follows. The "replace" operation replaces the value at the target location with a new value. The operation object MUST contain a "value" member whose content specifies the replacement value. The target location MUST exist for the operation to be successful. For example: { "op": "replace", "path": "/a/b/c", "value": 42 } This operation is functionally identical to a "remove" operation for a value, followed immediately by an "add" operation at the same location with the replacement value. Note: even though it's the same functionally, we do not call remove + add for performance reasons (multiple checks of same requirements). The replace operation. Object to apply the operation to. The "copy" operation copies the value at a specified location to the target location. The operation object MUST contain a "from" member, which is a string containing a JSON Pointer value that references the location in the target document to copy the value from. The "from" location MUST exist for the operation to be successful. For example: { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } This operation is functionally identical to an "add" operation at the target location using the value specified in the "from" member. Note: even though it's the same functionally, we do not call add with the value specified in from for performance reasons (multiple checks of same requirements). The copy operation. Object to apply the operation to. Method is used by Copy and Move to avoid duplicate code Location where value should be Object to inspect for the desired value Operation to report in case of an error GetValueResult containing value and a bool signifying a possible error Return value for the helper method used by Copy/Move. Needed to ensure we can make a different decision in the calling method when the value is null because it cannot be fetched (HasError = true) versus when it actually is null (much like why RemovedPropertyTypeResult is used for returning type in the Remove operation). The value of the property we're trying to get HasError: true when an error occurred, the operation didn't complete succesfully Return value for Remove operation. The combination tells us what to do next (if this operation is called from inside another operation, eg: Replace, Copy. Possible combo: - ActualType contains type: operation succesfully completed, can continue when called from inside another operation - ActualType null and HasError true: operation not completed succesfully, should not be allowed to continue - ActualType null and HasError false: operation completed succesfully, but we should not be allowed to continue when called from inside another method as we could not verify the type of the removed property. This happens when the value of an item in an ExpandoObject dictionary is null. The type of the removed property (value) HasError: true when an error occurred, the operation didn't complete succesfully Metadata for JsonProperty. Initializes a new instance. Gets or sets JsonProperty. Gets or sets Parent. The type of the property at path '{0}' could not be determined. The type of the property at path '{0}' could not be determined. The property at '{0}' could not be read. The property at '{0}' could not be read. The property at path '{0}' could not be updated. The property at path '{0}' could not be updated. The key '{0}' was not found. The key '{0}' was not found. For operation '{0}' on array property at path '{1}', the index is larger than the array size. For operation '{0}' on array property at path '{1}', the index is larger than the array size. The type '{0}' was malformed and could not be parsed. The type '{0}' was malformed and could not be parsed. For operation '{0}', the provided path is invalid for array property at path '{1}'. For operation '{0}', the provided path is invalid for array property at path '{1}'. The provided string '{0}' is an invalid path. The provided string '{0}' is an invalid path. The value '{0}' is invalid for property at path '{1}'. The value '{0}' is invalid for property at path '{1}'. For operation '{0}' on array property at path '{1}', the index is negative. For operation '{0}' on array property at path '{1}', the index is negative. '{0}' must be of type '{1}'. '{0}' must be of type '{1}'. The property at path '{0}' could not be added. The property at path '{0}' could not be added. The property at path '{0}' could not be removed. The property at path '{0}' could not be removed. Property does not exist at path '{0}'. Property does not exist at path '{0}'. The test operation is not supported. The test operation is not supported.