Sdílet prostřednictvím


ObjectAdapter Třída

Definice

Definuje operace, které lze provádět s dokumentem oprav 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>, IAdapterFactory)

Inicializuje novou instanci .ObjectAdapter

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

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 "add" provede jednu z následujících funkcí v závislosti na tom, na co cílová lokalita odkazuje:

o Pokud cílové umístění určuje index pole, vloží se do pole v zadaném indexu nová hodnota.

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, nahradí se hodnota daného člena.

Objekt operace MUSÍ obsahovat člena "value", jehož obsah určuje hodnotu, která má být přidána.

Příklad:

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

Při použití operace musí cílové umístění odkazovat na:

o Kořen cílového dokumentu – zadaná hodnota se stane celým obsahem cílového dokumentu.

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

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

Vzhledem k tomu, že tato operace je navržena tak, aby přidávala existující objekty a pole, její cílové umístění často nebude existovat. I když bude vyvolán algoritmus zpracování chyb ukazatele, tato specifikace definuje chování při zpracování chyb pro ukazatele "add", aby se tato chyba ignorovala a přidala hodnotu podle zadané hodnoty.

Samotný objekt nebo pole, které ho obsahuje, však musí existovat a zůstává chybou, aby tomu tak nebylo. Například "add" s cílovým umístěním "/a/b" počínaje tímto dokumentem:

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

není chyba, protože "a" existuje a "b" se přidá k jeho hodnotě. Jedná se o chybu v tomto dokumentu:

{ "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, ze kterého se má hodnota zkopírovat.

Umístění "Od" MUSÍ existovat, aby operace byla úspěšná.

Příklad:

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

Tato operace je funkčně shodná s operací "add" v cílovém umístění pomocí hodnoty zadané v členu "from".

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

Move(Operation, Object)

Operace přesunu 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, ze kterého se má hodnota přesunout.

Umístění "Od" MUSÍ existovat, aby operace byla úspěšná.

Příklad:

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

Tato operace je funkčně shodná s operací "odebrání" v umístění "z", po které okamžitě následuje operace "add" v cílovém umístění s hodnotou, která byla právě odebrána.

Umístění "z" NESMÍ být správnou předponou umístění "cesta"; tj. umístění nemůže být přesunuto do jednoho z dětí.

Remove(Operation, Object)

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

Aby operace proběhla úspěšně, musí existovat cílové umístě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 "replace" nahradí hodnotu v cílovém umístění novou hodnotou. Objekt operace MUSÍ obsahovat člen "value", jehož obsah určuje náhradní hodnotu.

Aby operace proběhla úspěšně, musí existovat cílové umístění.

Příklad:

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

Tato operace je funkčně shodná s operací "odebrání" pro hodnotu a okamžitě následuje operace "add" ve stejném umístění s náhradní hodnotou.

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

Test(Operation, Object)

Definuje operace, které lze provádět s dokumentem oprav JSON.

Platí pro