ObjectAdapter Třída

Definice

Definuje operace, které je možné provést v dokumentu opravy 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
Dědičnost
ObjectAdapter
Implementuje

Konstruktory

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

Inicializuje novou instanci ObjectAdapter.

ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory)

Inicializuje novou instanci ObjectAdapter.

Vlastnosti

AdapterFactory

Získá nebo nastaví IAdapterFactory

ContractResolver

Získá nebo nastaví Newtonsoft.Json.Serialization.IContractResolver.

LogErrorAction

Akce pro protokolování JsonPatchError.

Metody

Add(Operation, Object)

Operace "přidat" provádí jednu z následujících funkcí v závislosti na tom, na jaké cílové umístění odkazuje: o Pokud cílové umístění určuje index pole, vloží se do pole nová hodnota v zadaném indexu.

o Pokud cílové umístění určuje člen objektu, který ještě neexistuje, přidá se do objektu nový člen.

o Pokud cílové umístění určuje člen objektu, který existuje, hodnota daného člena je nahrazena.

Objekt operace musí obsahovat člen "value", jehož obsah určuje hodnotu, která se má přidat.

Příklad: { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } Při použití operace musí cílové umístění odkazovat na jednu z těchto možností: o Kořen cílového dokumentu – kde zadaná hodnota se stane celým obsahem cílového dokumentu.

o Člen, který se má přidat k existujícímu objektu – kde zadaná hodnota se přidá do daného objektu v určeném umístění. Pokud již člen existuje, nahradí se zadanou hodnotou.

o Prvek, který se má přidat do existujícího pole – kde je zadaná hodnota přidána do pole na určeném místě. Všechny prvky na zadaném indexu nebo nad zadaným indexem jsou posunuty o jednu pozici doprava. Zadaný index nesmí být větší než počet prvků v matici. Pokud se znak "-" používá k indexování konce pole (viz [RFC6901]), má to vliv na připojení hodnoty k matici.

Vzhledem k tomu, že je tato operace navržená tak, aby se přidala k existujícím objektům a polím, její cílové umístění často neexistuje. I když se tedy vyvolá algoritmus zpracování chyb ukazatele, tato specifikace definuje chování při zpracování chyb pro "přidání" ukazatelů, které tuto chybu ignorují a přidají hodnotu, jak je uvedeno.

Samotný objekt nebo pole, které obsahuje, však musí existovat a zůstává chybou, aby se nejedná o případ. Například "přidat" s cílovým umístěním "/a/b" počínaje tímto dokumentem: { "a": { "foo": 1 } není chyba, protože existuje "a" a "b" se přidá k její hodnotě. V tomto dokumentu se jedná o chybu: { "q": { "bar": 2 } protože "a" neexistuje.

Copy(Operation, Object)

Operace kopírování zkopíruje hodnotu v zadaném umístění do cílového umístění.

Objekt operace musí obsahovat člen "from", což je řetězec obsahující hodnotu ukazatele JSON, která odkazuje na umístění v cílovém dokumentu pro zkopírování hodnoty z.

Aby operace proběhla úspěšně, musí existovat umístění "from".

Příklad: { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } Tato operace je funkčně stejná jako operace "add" v cílovém umístění pomocí hodnoty zadané v členu "from".

Poznámka: I když je to stejné funkčně, nezavoláme sčítání s hodnotou zadanou z důvodů výkonu (více kontrol stejných požadavků).

Move(Operation, Object)

Operace přesunutí odebere hodnotu v zadaném umístění a přidá ji do cílového umístění.

Objekt operace musí obsahovat člen "from", což je řetězec obsahující hodnotu ukazatele JSON, která odkazuje na umístění v cílovém dokumentu, aby se hodnota přesunula z.

Aby operace proběhla úspěšně, musí existovat umístění "from".

Příklad: { "op": "move", "from": "/a/b/c", "path": "/a/b/d" } Tato operace je funkčně stejná jako operace "remove" v umístění "from" následovaná okamžitou operací "add" v cílovém umístění s hodnotou, která byla právě odebrána.

Umístění "from" nesmí být správnou předponou umístění "cesta"; tj. umístění nelze přesunout do jednoho ze svých dětí.

Remove(Operation, Object)

Operace odebrání odebere hodnotu v cílovém umístění.

Cílové umístění musí existovat, aby operace byla úspěšná.

Příklad: { "op": "remove", "path": "/a/b/c" } Pokud odeberete prvek z pole, všechny prvky nad zadaným indexem se posunou o jednu pozici doleva.

Replace(Operation, Object)

Operace nahradit nahradí hodnotu v cílovém umístění novou hodnotou. Objekt operace musí obsahovat člen "value", jehož obsah určuje náhradní hodnotu.

Cílové umístění musí existovat, aby operace byla úspěšná.

Příklad: { "op": "replace", "path": "/a/b/c", "value": 42 } Tato operace je funkčně shodná s operací "remove" pro hodnotu a za ní okamžitě následuje operace "add" ve stejném umístění s náhradní hodnotou.

Poznámka: I když je to stejné funkčně, nevoláme odebrání + přidání z důvodů výkonu (více kontrol stejných požadavků).

Test(Operation, Object)

Platí pro