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.