Поделиться через


ObjectAdapter.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" не существует.

public:
 virtual void Add(Microsoft::AspNetCore::JsonPatch::Operations::Operation ^ operation, System::Object ^ objectToApplyTo);
public void Add (Microsoft.AspNetCore.JsonPatch.Operations.Operation operation, object objectToApplyTo);
abstract member Add : Microsoft.AspNetCore.JsonPatch.Operations.Operation * obj -> unit
override this.Add : Microsoft.AspNetCore.JsonPatch.Operations.Operation * obj -> unit
Public Sub Add (operation As Operation, objectToApplyTo As Object)

Параметры

operation
Operation

Операция добавления.

objectToApplyTo
Object

Объект, к который применяется операция.

Реализации

Применяется к