Partager via


ObjectAdapter Classe

Définition

Définit les opérations qui peuvent être effectuées sur un document de correctif 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
Héritage
ObjectAdapter
Implémente

Constructeurs

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

Initialise une nouvelle instance de ObjectAdapter.

ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory)

Initialise une nouvelle instance de ObjectAdapter.

Propriétés

AdapterFactory

Obtient ou définit les IAdapterFactory

ContractResolver

Obtient ou définit Newtonsoft.Json.Serialization.IContractResolver.

LogErrorAction

Action pour la journalisation JsonPatchError.

Méthodes

Add(Operation, Object)

L’opération « add » exécute l’une des fonctions suivantes, selon ce que l’emplacement cible référence :

o Si l’emplacement cible spécifie un index de tableau, une nouvelle valeur est insérée dans le tableau à l’index spécifié.

o Si l’emplacement cible spécifie un membre d’objet qui n’existe pas déjà, un nouveau membre est ajouté à l’objet.

o Si l’emplacement cible spécifie un membre d’objet qui existe, la valeur de ce membre est remplacée.

L’objet d’opération DOIT contenir un membre « value » dont le contenu spécifie la valeur à ajouter.

Par exemple :

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

Lorsque l’opération est appliquée, l’emplacement cible DOIT référencer l’un des éléments suivants :

o Racine du document cible : la valeur spécifiée devient alors l’intégralité du contenu du document cible.

o Membre à ajouter à un objet existant : la valeur fournie est ajoutée à cet objet à l’emplacement indiqué. Si le membre existe déjà, il est remplacé par la valeur spécifiée.

o Élément à ajouter à un tableau existant , où la valeur fournie est ajoutée au tableau à l’emplacement indiqué. Tous les éléments au-dessus de l’index spécifié sont déplacés d’une position vers la droite. L’index spécifié NE DOIT PAS être supérieur au nombre d’éléments dans le tableau. Si le caractère « - » est utilisé pour indexer la fin du tableau (voir [RFC6901]), cela a pour effet d’ajouter la valeur au tableau.

Étant donné que cette opération est conçue pour ajouter des objets et des tableaux existants, son emplacement cible n’existe souvent pas. Bien que l’algorithme de gestion des erreurs du pointeur soit ainsi appelé, cette spécification définit le comportement de gestion des erreurs pour les pointeurs « ajouter » afin d’ignorer cette erreur et d’ajouter la valeur comme spécifié.

Toutefois, l’objet lui-même ou un tableau qui le contient doit exister, et cela reste une erreur pour que cela ne soit pas le cas. Par exemple, un « add » avec l’emplacement cible « /a/b » commençant par ce document :

{ « a »: { « foo »: 1 } }

n’est pas une erreur, car « a » existe et « b » est ajouté à sa valeur. Il s’agit d’une erreur dans ce document :

{ « q »: { « bar »: 2 } }

parce que « a » n’existe pas.

Copy(Operation, Object)

L’opération « copier » copie la valeur à un emplacement spécifié vers l’emplacement cible.

L’objet d’opération DOIT contenir un membre « from », qui est une chaîne contenant une valeur de pointeur JSON qui référence l’emplacement dans le document cible à partir duquel copier la valeur.

L’emplacement « from » DOIT exister pour que l’opération réussisse.

Par exemple :

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

Cette opération est fonctionnellement identique à une opération « ajouter » à l’emplacement cible à l’aide de la valeur spécifiée dans le membre « from ».

Remarque : même s’il s’agit de la même fonctionnalité, nous n’appelons pas add avec la valeur spécifiée dans de pour des raisons de performances (plusieurs vérifications des mêmes exigences).

Move(Operation, Object)

L’opération « déplacement » supprime la valeur à un emplacement spécifié et l’ajoute à l’emplacement cible.

L’objet d’opération DOIT contenir un membre « from », qui est une chaîne contenant une valeur de pointeur JSON qui fait référence à l’emplacement dans le document cible à partir duquel déplacer la valeur.

L’emplacement « from » DOIT exister pour que l’opération réussisse.

Par exemple :

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

Cette opération est fonctionnellement identique à une opération « remove » sur l’emplacement « from », suivie immédiatement d’une opération « add » à l’emplacement cible avec la valeur qui vient d’être supprimée.

L’emplacement « from » NE DOIT PAS être un préfixe approprié de l’emplacement « path » ; C’est-à-dire qu’un emplacement ne peut pas être déplacé dans l’un de ses enfants.

Remove(Operation, Object)

L’opération « remove » supprime la valeur à l’emplacement cible.

L’emplacement cible DOIT exister pour que l’opération réussisse.

Par exemple :

{ « op »: « remove », « path »: « /a/b/c » }

Si vous supprimez un élément d’un tableau, tous les éléments au-dessus de l’index spécifié sont déplacés d’une position vers la gauche.

Replace(Operation, Object)

L’opération « remplacer » remplace la valeur à l’emplacement cible par une nouvelle valeur. L’objet d’opération DOIT contenir un membre « value » dont le contenu spécifie la valeur de remplacement.

L’emplacement cible DOIT exister pour que l’opération réussisse.

Par exemple :

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

Cette opération est fonctionnellement identique à une opération « remove » pour une valeur, suivie immédiatement d’une opération « add » au même emplacement avec la valeur de remplacement.

Remarque : même s’il s’agit de la même fonctionnalité, nous n’appelons pas remove + add pour des raisons de performances (plusieurs vérifications des mêmes exigences).

Test(Operation, Object)

Définit les opérations qui peuvent être effectuées sur un document de correctif JSON.

S’applique à