JSON パッチでは、同じ配列に対する後続の操作でインデックスをどのように使用する必要がありますか。たとえば、
var source = { colors: ['Red', 'Green', 'Blue'] };
var target = { colors: [] };
パッチ ドキュメント (操作)
[{"op":"remove","path":"/colors/0"},
{"op":"remove","path":"/colors/1"},
{"op":"remove","path":"/colors/2"}]
ソースのインデックスを考えると、上記のインデックスは正しいです。ただし、順番に適用すると、インデックスが正しくありません。つまり、0 番目と 1 番目のインデックスを削除すると、インデックス 2 には要素がありません。
これを処理する方法はいくつか考えられます。配列に対するすべての削除操作をグループ化し、一時構造を保持して、削除中にインデックスの変更を保持/操作します。または、変化する値に相対的なインデックスを維持します
[{"op":"remove","path":"/colors/0"},
{"op":"remove","path":"/colors/0"},
{"op":"remove","path":"/colors/0"}]
操作が一連のリソースの変更と見なされる場合、それは理にかなっています。
これに関する基準はありますか。私は仕様でそれについて何も見ることができません。A.4. 配列要素の削除