ObjectAdapter Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Определяет операции, которые можно выполнять с документом исправления 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
- Наследование
-
ObjectAdapter
- Реализации
Конструкторы
ObjectAdapter(IContractResolver, Action<JsonPatchError>, IAdapterFactory) |
Инициализирует новый экземпляр ObjectAdapter. |
ObjectAdapter(IContractResolver, Action<JsonPatchError>) |
Инициализирует новый экземпляр ObjectAdapter. |
Свойства
AdapterFactory |
Получает или задает IAdapterFactory |
ContractResolver |
Возвращает или задает класс Newtonsoft.Json.Serialization.IContractResolver. |
LogErrorAction |
Действие для ведения журнала JsonPatchError. |
Методы
Add(Operation, Object) |
Операция "добавить" выполняет одну из следующих функций в зависимости от того, на что ссылается целевое расположение: o Если целевое расположение указывает индекс массива, в массив по указанному индексу вставляется новое значение. o Если в целевом расположении указан еще не существующий элемент объекта, в объект добавляется новый элемент. o Если целевое расположение указывает существующий элемент объекта, значение этого элемента заменяется. Объект операции ДОЛЖЕН содержать элемент value, содержимое которого указывает добавляемое значение. Пример: { "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] } При применении операции целевое расположение ДОЛЖНО ссылаться на одно из следующих значений: o Корень целевого документа, после чего указанное значение становится всем содержимым целевого документа. o Элемент, добавляемый к существующему объекту, после чего предоставленное значение добавляется к этому объекту в указанном расположении. Если элемент уже существует, он заменяется указанным значением. o Элемент, добавляемый в существующий массив, после чего предоставленное значение добавляется в массив в указанном расположении. Все элементы с указанным индексом или выше смещаются на одну позицию вправо. Указанный индекс НЕ ДОЛЖЕН быть больше числа элементов в массиве. Если символ "-" используется для индексирования конца массива (см. [RFC6901]), это будет действовать при добавлении значения в массив. Так как эта операция предназначена для добавления в существующие объекты и массивы, ее целевое расположение часто не существует. Несмотря на то, что алгоритм обработки ошибок указателя будет вызываться таким образом, эта спецификация определяет поведение обработки ошибок для указателей "добавить", чтобы игнорировать эту ошибку и добавлять значение, как указано. Однако сам объект или массив, содержащий его, должен существовать, и он остается ошибкой, так как это не так. Например, "добавить" с целевым расположением "/a/b", начиная с этого документа: { "a": { "foo": 1 } } не является ошибкой, так как "a" существует, и "b" будет добавлен к его значению. В этом документе возникает ошибка: { "q": { "bar": 2 } } поскольку "a" не существует. |
Copy(Operation, Object) |
Операция копирования копирует значение в указанном расположении в целевое расположение. Объект операции ДОЛЖЕН содержать элемент from, который является строкой, содержащей значение указателя JSON, которое ссылается на расположение в целевом документе, из которого копируется значение. Расположение from должно существовать для успешного выполнения операции. Пример: { "op": "copy", "from": "/a/b/c", "path": "/a/b/e" } Эта операция функционально идентична операции добавления в целевом расположении с использованием значения, указанного в элементе from. Примечание. Несмотря на то, что с функциональной точки зрения это одно и то же, мы не вызываем метод add со значением, указанным в из, для повышения производительности (несколько проверок одинаковых требований). |
Move(Operation, Object) |
Операция перемещения удаляет значение в указанном расположении и добавляет его в целевое расположение. Объект операции ДОЛЖЕН содержать элемент from, который представляет собой строку, содержащую значение указателя JSON, которое ссылается на расположение в целевом документе, из которого нужно переместить значение. Расположение from должно существовать для успешного выполнения операции. Пример: { "op": "move", "from": "/a/b/c", "path": "/a/b/d" } Эта операция функционально идентична операции "удалить" в расположении "из", за которой сразу же следует операция "добавить" в целевом расположении с только что удаленным значением. Расположение "from" НЕ ДОЛЖНО быть правильным префиксом расположения path; Т. е. расположение не может быть перемещено в один из его дочерних элементов. |
Remove(Operation, Object) |
Операция удаления удаляет значение в целевом расположении. Для успешного выполнения операции должно существовать целевое расположение. Пример: { "op": "remove", "path": "/a/b/c" } При удалении элемента из массива все элементы выше указанного индекса сдвигаются на одну позицию влево. |
Replace(Operation, Object) |
Операция "заменить" заменяет значение в целевом расположении новым значением. Объект операции ДОЛЖЕН содержать элемент value, содержимое которого задает значение замены. Для успешного выполнения операции должно существовать целевое расположение. Пример: { "op": "replace", "path": "/a/b/c", "value": 42 } Эта операция функционально идентична операции удаления для значения, за которой сразу же следует операция "добавить" в том же расположении со значением замены. Примечание. Несмотря на то, что функционально это одно и то же, мы не вызываем метод remove + add из соображений производительности (несколько проверок одинаковых требований). |
Test(Operation, Object) |
Определяет операции, которые можно выполнять с документом исправления JSON. |