Udostępnij za pośrednictwem


ObjectAdapter Klasa

Definicja

Definiuje operacje, które można wykonać w dokumencie poprawki 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
Dziedziczenie
ObjectAdapter
Implementuje

Konstruktory

ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory)

Inicjuje nowe wystąpienie klasy ObjectAdapter.

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

Inicjuje nowe wystąpienie klasy ObjectAdapter.

Właściwości

AdapterFactory

Pobiera lub ustawia IAdapterFactory

ContractResolver

Pobiera lub ustawia wartość Newtonsoft.Json.Serialization.IContractResolver.

LogErrorAction

Akcja rejestrowania JsonPatchError.

Metody

Add(Operation, Object)

Operacja "add" wykonuje jedną z następujących funkcji, w zależności od tego, do czego odwołuje się lokalizacja docelowa:

o Jeśli lokalizacja docelowa określa indeks tablicy, nowa wartość zostanie wstawiona do tablicy w określonym indeksie.

o Jeśli lokalizacja docelowa określa element członkowski obiektu, który jeszcze nie istnieje, nowy element członkowski zostanie dodany do obiektu.

o Jeśli lokalizacja docelowa określa element członkowski obiektu, który istnieje, wartość tego elementu członkowskiego zostanie zamieniona.

Obiekt operacji MUSI zawierać element członkowski "value", którego zawartość określa wartość, która ma zostać dodana.

Przykład:

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

Po zastosowaniu operacji lokalizacja docelowa MUSI odwoływać się do jednej z następujących elementów:

o Katalog główny dokumentu docelowego — gdzie wartość określona staje się całą zawartością dokumentu docelowego.

o Element członkowski, który ma zostać dodany do istniejącego obiektu — gdzie podana wartość jest dodawana do tego obiektu w wskazanej lokalizacji. Jeśli element członkowski już istnieje, zostanie zastąpiony określoną wartością.

o Element, który ma zostać dodany do istniejącej tablicy — gdzie jest dodawana podana wartość do tablicy w wskazanej lokalizacji. Wszystkie elementy w lub powyżej określonego indeksu są przesunięte w jedną pozycję po prawej stronie. Określony indeks NIE MOŻE być większy niż liczba elementów w tablicy. Jeśli znak "-" jest używany do indeksowania końca tablicy (zobacz [RFC6901]), ma to wpływ na dołączenie wartości do tablicy.

Ponieważ ta operacja jest przeznaczona do dodawania do istniejących obiektów i tablic, jej lokalizacja docelowa często nie istnieje. Mimo że algorytm obsługi błędów wskaźnika zostanie wywołany, ta specyfikacja definiuje zachowanie obsługi błędów dla wskaźników "add" w celu zignorowania tego błędu i dodania wartości zgodnie z określoną.

Jednak sam obiekt lub tablica zawierająca ją musi istnieć i pozostaje błędem, aby nie być takim przypadkiem. Na przykład "dodaj" z lokalizacją docelową "/a/b", zaczynając od tego dokumentu:

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

nie jest błędem, ponieważ "a" istnieje, a element "b" zostanie dodany do jego wartości. Jest to błąd w tym dokumencie:

{ "q": { "bar": 2 } }

ponieważ "a" nie istnieje.

Copy(Operation, Object)

Operacja "copy" kopiuje wartość w określonej lokalizacji do lokalizacji docelowej.

Obiekt operacji MUSI zawierać element członkowski "from", który jest ciągiem zawierającym wartość wskaźnika JSON, która odwołuje się do lokalizacji w dokumencie docelowym w celu skopiowania wartości z.

Lokalizacja "from" MUSI istnieć, aby operacja zakończyła się pomyślnie.

Przykład:

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

Ta operacja jest funkcjonalnie identyczna z operacją "dodaj" w lokalizacji docelowej przy użyciu wartości określonej w elemencie członkowskim "from".

Uwaga: mimo że jest ona taka sama funkcjonalnie, nie wywołujemy metody add z wartością określoną z powodów wydajności (wiele testów tych samych wymagań).

Move(Operation, Object)

Operacja "move" usuwa wartość w określonej lokalizacji i dodaje ją do lokalizacji docelowej.

Obiekt operacji MUSI zawierać element członkowski "from", który jest ciągiem zawierającym wartość wskaźnika JSON, która odwołuje się do lokalizacji w dokumencie docelowym w celu przeniesienia wartości z.

Lokalizacja "from" MUSI istnieć, aby operacja zakończyła się pomyślnie.

Przykład:

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

Ta operacja jest funkcjonalnie identyczna z operacją "usuń" w lokalizacji "from", a następnie natychmiast przez operację "add" w lokalizacji docelowej z wartością, która została właśnie usunięta.

Lokalizacja "from" NIE MOŻE być odpowiednim prefiksem lokalizacji "path"; tj. nie można przenieść lokalizacji do jednego z jego elementów podrzędnych.

Remove(Operation, Object)

Operacja "usuń" usuwa wartość w lokalizacji docelowej.

Lokalizacja docelowa MUSI istnieć, aby operacja zakończyła się pomyślnie.

Przykład:

{ "op": "remove", "path": "/a/b/c" }

W przypadku usunięcia elementu z tablicy wszystkie elementy powyżej określonego indeksu zostaną przesunięte w jedną pozycję po lewej stronie.

Replace(Operation, Object)

Operacja "replace" zastępuje wartość w lokalizacji docelowej nową wartością. Obiekt operacji MUSI zawierać element członkowski "value", którego zawartość określa wartość zastępczą.

Lokalizacja docelowa MUSI istnieć, aby operacja zakończyła się pomyślnie.

Przykład:

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

Ta operacja jest funkcjonalnie identyczna z operacją "usuń" dla wartości, po której następuje natychmiast operacja "dodaj" w tej samej lokalizacji z wartością zastępczą.

Uwaga: mimo że jest ona taka sama funkcjonalnie, nie wywołujemy usuwania i dodawania ze względów wydajności (wiele testów tych samych wymagań).

Test(Operation, Object)

Definiuje operacje, które można wykonać w dokumencie poprawki JSON.

Dotyczy