ObjectAdapter.Add(Operation, Object) メソッド

定義

"追加" 操作は、ターゲットの場所が参照する内容に応じて、次のいずれかの関数を実行します。

o ターゲットの場所で配列インデックスが指定されている場合、指定したインデックス位置の配列に新しい値が挿入されます。

o ターゲットの場所で、まだ存在しないオブジェクト メンバーが指定されている場合、新しいメンバーがオブジェクトに追加されます。

o ターゲットの場所に存在するオブジェクト メンバーが指定されている場合、そのメンバーの値が置き換えられます。

操作オブジェクトには、追加する値を指定するコンテンツを持つ "value" メンバーが含まれている必要があります。

例:

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

操作が適用されると、ターゲットの場所は次のいずれかを参照する必要があります。

o ターゲット ドキュメントのルート - 指定した値がターゲット ドキュメントのコンテンツ全体になります。

o 既存のオブジェクトに追加するメンバー - 指定された値が指定された場所でそのオブジェクトに追加されます。 メンバーが既に存在する場合は、指定した値に置き換えられます。

o 既存の配列に追加する要素 - 指定された値が指定された位置の配列に追加されます。 指定したインデックスの上にある要素は、1 つ右にシフトされます。 指定したインデックスは、配列内の要素の数を超えてはなりません。 "-" 文字を使用して配列の末尾のインデックスを作成する場合 ([RFC6901]を参照)、配列に値を追加する効果があります。

この操作は既存のオブジェクトと配列に追加するように設計されているため、ターゲットの場所は存在しないことが多いです。 したがって、ポインターのエラー処理アルゴリズムが呼び出されますが、この仕様では、"追加" ポインターのエラー処理動作を定義して、そのエラーを無視し、指定された値を追加します。

ただし、オブジェクト自体またはそれを含む配列は存在する必要があり、その場合はエラーのままです。 たとえば、このドキュメント以降のターゲットの場所が "/a/b" の "add" は次のようになります。

{ "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

操作を適用するオブジェクト。

実装

適用対象