Aracılığıyla paylaş


ObjectAdapter Sınıf

Tanım

JSON düzeltme eki belgesinde gerçekleştirilebilecek işlemleri tanımlar.

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
Devralma
ObjectAdapter
Uygulamalar

Oluşturucular

ObjectAdapter(IContractResolver, Action<JsonPatchError>)

öğesinin yeni bir örneğini ObjectAdapterbaşlatır.

ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory)

öğesinin yeni bir örneğini ObjectAdapterbaşlatır.

Özellikler

AdapterFactory

Şu IAdapterFactory

ContractResolver

öğesini alır veya ayarlar Newtonsoft.Json.Serialization.IContractResolver.

LogErrorAction

Günlüğe kaydetme JsonPatchErroreylemi.

Yöntemler

Add(Operation, Object)

"Add" işlemi, hedef konumun başvuracaklarına bağlı olarak aşağıdaki işlevlerden birini gerçekleştirir:

o Hedef konum bir dizi dizini belirtiyorsa, belirtilen dizindeki diziye yeni bir değer eklenir.

o Hedef konum henüz var olmayan bir nesne üyesi belirtirse, nesneye yeni bir üye eklenir.

o Hedef konum var olan bir nesne üyesini belirtirse, o üyenin değeri değiştirilir.

İşlem nesnesi, içeriği eklenecek değeri belirten bir "value" üyesi içermelidir.

Örnek:

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

İşlem uygulandığında hedef konumun aşağıdakilerden birine başvurmaSı GEREKIR:

o Hedef belgenin kökü - burada belirtilen değerde hedef belgenin tüm içeriği olur.

o Var olan bir nesneye eklenecek bir üye - burada sağlanan değer belirtilen konumda bu nesneye eklenir. Üye zaten varsa, belirtilen değerle değiştirilir.

o Varolan bir diziye eklenecek öğe - burada sağlanan değer belirtilen konumda diziye eklenir. Belirtilen dizindeki veya üzerindeki tüm öğeler bir konum sağa kaydırılır. Belirtilen dizin dizideki öğe sayısından büyük OLMALIDIR. Dizinin sonunu dizine almak için "-" karakteri kullanılıyorsa (bkz. [RFC6901]), bunun değeri diziye ekleme etkisi vardır.

Bu işlem mevcut nesnelere ve dizilere eklenecek şekilde tasarlandığından, hedef konumu genellikle mevcut olmayacaktır. İşaretçinin hata işleme algoritması bu nedenle çağrılsa da, bu belirtim "ekle" işaretçilerinin bu hatayı yoksaymak ve değeri belirtilen şekilde eklemek için hata işleme davranışını tanımlar.

Ancak, nesnenin veya onu içeren bir dizinin var olması gerekir ve böyle olmaması hata olarak kalır. Örneğin, bu belgeden başlayarak hedef konumu "/a/b" olan bir "ekle":

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

hata değildir, çünkü "a" vardır ve "b" değerine eklenir. Bu belgede bir hata var:

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

çünkü "a" yok.

Copy(Operation, Object)

"Kopyalama" işlemi, belirtilen bir konumdaki değeri hedef konuma kopyalar.

İşlem nesnesi, değeri kopyalamak için hedef belgedeki konuma başvuran JSON İşaretçisi değerini içeren bir dize olan "from" üyesini içermelidir.

İşlemin başarılı olması için "kimden" konumu MEVCUT OLMALIDIR.

Örnek:

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

Bu işlem, "from" üyesinde belirtilen değeri kullanarak hedef konumdaki "add" işlemiyle işlevsel olarak aynıdır.

Not: İşlevsel olarak aynı olsa da, performans nedenleriyle (aynı gereksinimlerin birden çok denetimi) için içinde belirtilen değerle add çağrısı yapmayız.

Move(Operation, Object)

"Taşıma" işlemi belirtilen bir konumdaki değeri kaldırır ve hedef konuma ekler.

İşlem nesnesi, değeri taşımak için hedef belgedeki konuma başvuran JSON İşaretçisi değerini içeren bir dize olan "from" üyesini içermelidir.

İşlemin başarılı olması için "kimden" konumu MEVCUT OLMALIDIR.

Örnek:

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

Bu işlem işlevsel olarak "from" konumundaki "remove" işlemiyle aynıdır ve ardından hedef konumda yeni kaldırılan değere sahip bir "ekle" işlemi izler.

"Kimden" konumu "yol" konumunun düzgün bir ön eki OLMALIDIR; Yani, bir konum alt öğelerinden birine taşınamaz.

Remove(Operation, Object)

"Remove" işlemi hedef konumdaki değeri kaldırır.

İşlemin başarılı olması için hedef konum MEVCUT OLMALIDIR.

Örnek:

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

Bir öğe diziden kaldırılırsa, belirtilen dizinin üzerindeki öğeler sola bir konuma kaydırılır.

Replace(Operation, Object)

"replace" işlemi hedef konumdaki değeri yeni bir değerle değiştirir. İşlem nesnesi, içeriği değiştirme değerini belirten bir "değer" üyesi içermelidir.

İşlemin başarılı olması için hedef konum MEVCUT OLMALIDIR.

Örnek:

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

Bu işlem işlevsel olarak bir değer için "kaldırma" işlemiyle aynıdır ve ardından değiştirme değeriyle aynı konumda bir "ekle" işlemi izler.

Not: İşlevsel olarak aynı olsa da performans nedenleriyle remove + add çağrısını yapmayız (aynı gereksinimlerin birden çok denetimi).

Test(Operation, Object)

JSON düzeltme eki belgesinde gerçekleştirilebilecek işlemleri tanımlar.

Şunlara uygulanır