Compartir a través de


ObjectAdapter Clase

Definición

Define las operaciones que se pueden realizar en un documento de revisión JSON.

public ref class ObjectAdapter : Microsoft::AspNetCore::JsonPatch::Adapters::IObjectAdapter
public ref class ObjectAdapter : Microsoft::AspNetCore::JsonPatch::Adapters::IObjectAdapterWithTest
public class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapter
public class ObjectAdapter : Microsoft.AspNetCore.JsonPatch.Adapters.IObjectAdapterWithTest
type ObjectAdapter = class
    interface IObjectAdapter
type ObjectAdapter = class
    interface IObjectAdapterWithTest
    interface IObjectAdapter
Public Class ObjectAdapter
Implements IObjectAdapter
Public Class ObjectAdapter
Implements IObjectAdapterWithTest
Herencia
ObjectAdapter
Implementaciones

Constructores

ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory)

Inicializa una nueva instancia de la clase ObjectAdapter.

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

Inicializa una nueva instancia de la clase ObjectAdapter.

Propiedades

AdapterFactory

Obtiene o establece IAdapterFactory

ContractResolver

Obtiene o establece el Newtonsoft.Json.Serialization.IContractResolver.

LogErrorAction

Acción para registrar JsonPatchError.

Métodos

Add(Operation, Object)

La operación "add" realiza una de las siguientes funciones, en función de las referencias de ubicación de destino:

o Si la ubicación de destino especifica un índice de matriz, se inserta un nuevo valor en la matriz en el índice especificado.

o Si la ubicación de destino especifica un miembro de objeto que aún no existe, se agrega un nuevo miembro al objeto .

o Si la ubicación de destino especifica un miembro de objeto que existe, se reemplaza el valor de ese miembro.

El objeto de operación DEBE contener un miembro "value" cuyo contenido especifica el valor que se va a agregar.

Por ejemplo:

{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] }

Cuando se aplica la operación, la ubicación de destino DEBE hacer referencia a una de las siguientes:

o La raíz del documento de destino: donde el valor especificado se convierte en todo el contenido del documento de destino.

o Un miembro que se va a agregar a un objeto existente, donde el valor proporcionado se agrega a ese objeto en la ubicación indicada. Si el miembro ya existe, se reemplaza por el valor especificado.

o Elemento que se va a agregar a una matriz existente: donde el valor proporcionado se agrega a la matriz en la ubicación indicada. Todos los elementos situados en o por encima del índice especificado se desplazan una posición a la derecha. El índice especificado NO DEBE ser mayor que el número de elementos de la matriz. Si el carácter "-" se usa para indexar el final de la matriz (vea [RFC6901]), esto tiene el efecto de anexar el valor a la matriz.

Dado que esta operación está diseñada para agregar objetos y matrices existentes, su ubicación de destino a menudo no existirá. Aunque se invocará el algoritmo de control de errores del puntero, esta especificación define el comportamiento de control de errores para los punteros "add" para omitir ese error y agregar el valor como se especifica.

Sin embargo, el propio objeto o una matriz que lo contiene necesitan existir y sigue siendo un error para que no sea el caso. Por ejemplo, un "add" con una ubicación de destino de "/a/b" a partir de este documento:

{ "a": { "foo": 1 } }

no es un error, porque "a" existe y "b" se agregará a su valor. Se trata de un error en este documento:

{ "q": { "bar": 2 } }

porque "a" no existe.

Copy(Operation, Object)

La operación "copy" copia el valor en una ubicación especificada en la ubicación de destino.

El objeto de operación DEBE contener un miembro "from", que es una cadena que contiene un valor de puntero JSON que hace referencia a la ubicación del documento de destino desde el que copiar el valor.

La ubicación "from" debe existir para que la operación se realice correctamente.

Por ejemplo:

{ "op": "copy", "from": "/a/b/c", "path": "/a/b/e" }

Esta operación es funcionalmente idéntica a una operación "add" en la ubicación de destino mediante el valor especificado en el miembro "from".

Nota: aunque es la misma funcionalmente, no llamamos a add con el valor especificado en por motivos de rendimiento (varias comprobaciones de los mismos requisitos).

Move(Operation, Object)

La operación "mover" quita el valor en una ubicación especificada y lo agrega a la ubicación de destino.

El objeto de operación DEBE contener un miembro "from", que es una cadena que contiene un valor de puntero JSON que hace referencia a la ubicación del documento de destino desde la que mover el valor.

La ubicación "from" debe existir para que la operación se realice correctamente.

Por ejemplo:

{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" }

Esta operación es funcionalmente idéntica a una operación "remove" en la ubicación "from", seguida de una operación "add" inmediatamente en la ubicación de destino con el valor que acaba de quitar.

La ubicación "from" NO DEBE ser un prefijo adecuado de la ubicación "path"; Es decir, una ubicación no se puede mover a uno de sus elementos secundarios.

Remove(Operation, Object)

La operación "remove" quita el valor en la ubicación de destino.

La ubicación de destino DEBE existir para que la operación se realice correctamente.

Por ejemplo:

{ "op": "remove", "path": "/a/b/c" }

Si se quita un elemento de una matriz, los elementos situados encima del índice especificado se desplazan una posición a la izquierda.

Replace(Operation, Object)

La operación "replace" reemplaza el valor en la ubicación de destino por un nuevo valor. El objeto de operación DEBE contener un miembro "value" cuyo contenido especifica el valor de reemplazo.

La ubicación de destino DEBE existir para que la operación se realice correctamente.

Por ejemplo:

{ "op": "replace", "path": "/a/b/c", "value": 42 }

Esta operación es funcionalmente idéntica a una operación "remove" para un valor, seguida inmediatamente de una operación "add" en la misma ubicación con el valor de reemplazo.

Nota: aunque es lo mismo funcionalmente, no llamamos a remove + add por motivos de rendimiento (varias comprobaciones de los mismos requisitos).

Test(Operation, Object)

Define las operaciones que se pueden realizar en un documento de revisión JSON.

Se aplica a