ObjectAdapter Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) | |