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é 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. |